diff --git a/vim/cf5-compiler.vim b/vim/cf5-compiler.vim index a46278a..99f4bea 100755 --- a/vim/cf5-compiler.vim +++ b/vim/cf5-compiler.vim @@ -14,27 +14,54 @@ endif " " Windows " -let g:cppflags=" " -let g:wcppflags="/O2 /EHsc" +let g:argv="" +let g:cppflags="" +let g:wcppflags="/O2 /EHsc /DWIN32" function! s:CompileMSVC() let exename=expand("%:p:r:s,$,.exe,") let srcname=expand("%") " compile it - let ccline="cl ".g:cppflags." ".g:wcppflags." ".srcname." /Fe".exename + let ccline="cl ".$CXXFLAGS." ".g:cppflags." ".g:wcppflags." ".srcname." /Fe".exename." /link ".$LDFLAGS echo ccline let cout = system( ccline ) if v:shell_error echo cout return endif + echo cout " run it - echo exename - let eout = system( exename ) + let cmd = exename . " " . g:argv + echo cmd + let eout = system( cmd ) + echo eout +endfunction + +function! s:CompileJava() + " compile it + let cmd = "javac " . g:javaflags . " " . expand("%") + echo cmd + let cout = system( cmd ) + echo cout + if v:shell_error + return + endif + " run it + "let classpath=expand("%:p:r") + let exename=expand("%:r") + let cmd = "java " . exename . " " . g:argv + echo cmd + let eout = system( cmd ) echo eout endfunction function! s:CompileWindows() - call s:CompileMSVC() + let ext=expand("%:e") + if ext=="java" + call s:CompileJava() + endif + if ext=="cpp" + call s:CompileMSVC() + endif endfunction " @@ -68,11 +95,23 @@ endfunction " Load compile instructions and call window or linux compiler. " function! CF5Compile() - source expand("%:p:h")."/compile-opt.vim" - call FirstModeLine() - if exists("g:cf5script") - execute g:cf5script + " + " Source compile-opt.vim if exists. + " + let copt=expand("%:p:h")."/compile-opt.vim" + if filereadable(copt) + source copt endif + " + " Set source specific compiler options. + " + call FirstModeLine() + "if exists("g:cf5script") + " execute g:cf5script + "endif + " + " Compile. + " if has("win32") || has("win64") call s:CompileWindows() else diff --git a/vim/vimrc b/vim/vimrc index 049ed49..3cc5ad1 100755 --- a/vim/vimrc +++ b/vim/vimrc @@ -23,7 +23,7 @@ let g:netrw_browse_split = 3 " open in a tab " In many terminal emulators the mouse works just fine, thus enable it. if has('mouse') - set mouse=a + set mouse=a endif " a copy-past from my linux vimrc @@ -48,28 +48,31 @@ endif " for keeping undo history after closing Vim entirely. Vim will complain if you " try to quit without saving, and swap files will keep you safe if your computer " crashes. -if has('hidden') +if exists('&hidden') set hidden endif " Instead of failing a command because of unsaved changes, instead raise a " dialogue asking if you wish to save changed files. -if has('confirm') +if exists('&confirm') set confirm endif " Use visual bell instead of beeping when doing something wrong -if has('visualbell') +if exists('&visualbell') set visualbell endif " Display line numbers on the left -if has('number') +if exists('&number') set number endif " Modelined are used to configure files. -set modeline +if exists('&modeline') + set modeline + set modelines=10 +endif " Only do this part when compiled with support for autocommands. if has("autocmd")