如果作为一个单纯的编辑器,VIM 在很多方面要比 emacs 优秀。这里保存自己的 VIM 配置文件。 set nocompatible source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin set diffexpr=MyDiff() function MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '/<cmd' let cmd = '""' . $VIMRUNTIME . '/diff"' let eq = '"' else let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '/diff"' endif else let cmd = $VIMRUNTIME . '/diff' endif silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq endfunction " line number set nu! " set cul "ColorScheme colorscheme desert "Maximum au GUIEnter * simalt ~x " REQUIRED. This makes vim invoke latex-suite when you open a tex file. filetype plugin on " IMPORTANT: win32 users will need to have 'shellslash' set so that latex " can be called correctly. set shellslash " IMPORTANT: grep will sometimes skip displaying the file name if you " search in a singe file. This will confuse latex-suite. Set your grep " program to alway generate a file-name. set grepprg=grep/ -nH/ $* " OPTIONAL: This enables automatic indentation as you type. filetype indent on " set guifont=Courier_New:h14:cANSI " syntax on " set hlsearch set incsearch " set tabstop=4 " set shiftwidth=4 " set listchars=tab:>-,trail:- set list " set backspace=indent,eol,start " " set et if has("autocmd") " autocmd FileType c set et autocmd FileType cpp set et autocmd FileType java set et autocmd FileType fortran set ts=2 " autocmd FileType c,cpp abbreviate #d #define autocmd FileType c,cpp abbreviate #i #include autocmd FileType c,cpp abbreviate #b /**************************************** autocmd FileType c,cpp abbreviate #e <space>****************************************/ autocmd FileType c,cpp abbreviate #l /*-------------------------------------------- */ autocmd FileType c,cpp abbreviate #h huys endif " set nobackup " whitespace cleanup function SpaceCleanup() execute 'g// *$/s///g' execute 'g//r$/s///g' endfunction :command -nargs=0 SpaceCleanup :call SpaceCleanup() " tab cleanup function NoTab() execute 'g//t/s/// / / / /g' endfunction :command -nargs=0 NoTab :call NoTab() " function Cleanup() call NoTab() call SpaceCleanup() endfunction :command -nargs=0 Cleanup :call Cleanup() " set laststatus=2 set statusline=%<%f/%h%m%r%=%-20.(line=%l/ / col=%c%V/ / totlin=%L%)/ / /%h%m%r%=%-40(bytval=0x%B,%n%Y%)/%P " :set path=.,./../../inc,D:/GS/mingw4/include