" 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 always generate a file-name.
set grepprg=grep -nH $*
" OPTIONAL: This enables automatic indentation as you type.
filetype indent on
" OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults to
" 'plaintex' instead of 'tex', which results in vim-latex not being loaded.
" The following changes the default filetype back to 'tex':
let g:tex_flavor='tex'
let g:Imap_UsePlaceHolders = 0
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set guifont=NSimSun:h14:cGB2312
colorscheme koehler
set nocompatible source $VIMRUNTIME/vimrc_example.vim set number set autoindent set nobackup set showmatch set formatoptions+=mM set fileencodings=ucs-bom,utf-8,gbk
function! SwitchToBuf(filename) "let fullfn = substitute(a:filename, "^\~/", $HOME . "/", "") " find in current tab let bufwinnr = bufwinnr(a:filename) if bufwinnr != -1 exec bufwinnr . "wincmd w" return else " find in each tab tabfirst let tab = 1 while tab <= tabpagenr("$") let bufwinnr = bufwinnr(a:filename) if bufwinnr != -1 exec "normal " . tab . "gt" exec bufwinnr . "wincmd w" return endif tabnext let tab = tab + 1 endwhile " not exist, new tab exec "tabnew " . a:filename endif endfunction
" Key mapping to stop the search highlight nmap <silent> <F2> :nohlsearch<CR> imap <silent> <F2> <C-O>:nohlsearch<CR>
" Key mapping for the taglist.vim plugin nmap <F9> :Tlist<CR> imap <F9> <C-O>:Tlist<CR>
" Key mappings for the quickfix commands nmap <F11> :cn<CR> nmap <F12> :cp<CR>
" Non-GUI setting if !has('gui_running') " Do not increase the windows width in the taglist.vim plugin if has('eval') let Tlist_Inc_Winwidth=0 endif
" Set text-mode menu if has('wildmenu') set wildmenu set cpoptions-=< set wildcharm=<C-Z> nmap <F10> :emenu <C-Z> imap <F10> <C-O>:emenu <C-Z> endif endif
if has('autocmd')
autocmd BufNewFile *.tex so $VIMvimfilesftpluginlatex-suitemain.vim function! SetFileEncodings(encodings) let b:my_fileencodings_bak=&fileencodings let &fileencodings=a:encodings endfunction
function! RestoreFileEncodings() let &fileencodings=b:my_fileencodings_bak unlet b:my_fileencodings_bak endfunction
function! ConvertHtmlEncoding(encoding) if a:encoding ==? 'gb2312' return 'gbk' " GB2312 imprecisely means GBK in HTML elseif a:encoding ==? 'iso-8859-1' return 'latin1' " The canonical encoding name in Vim elseif a:encoding ==? 'utf8' return 'utf-8' " Other encoding aliases should follow here else return a:encoding endif endfunction
function! DetectHtmlEncoding() if &filetype != 'html' return endif normal m` normal gg if search('c<meta http-equiv=("?)Content-Type1 content="text/html; charset=[-A-Za-z0-9_]+">') != 0 let reg_bak=@" normal y$ let charset=matchstr(@", 'text/html; charset=zs[-A-Za-z0-9_]+') let charset=ConvertHtmlEncoding(charset) normal `` let @"=reg_bak if &fileencodings == '' let auto_encodings=',' . &encoding . ',' else let auto_encodings=',' . &fileencodings . ',' endif if charset !=? &fileencoding && (auto_encodings =~ ',' . &fileencoding . ',' || &fileencoding == '') silent! exec 'e ++enc=' . charset endif else normal `` endif endfunction
function! RemoveTrailingSpace() if $VIM_HATE_SPACE_ERRORS != '0' && (&filetype == 'c' || &filetype == 'cpp' || &filetype == 'vim') normal m` silent! :%s/s+$//e normal `` endif endfunction
" Highlight space errors in C/C++ source files (Vim tip #935) if $VIM_HATE_SPACE_ERRORS != '0' let c_space_errors=1 endif
" Use Canadian spelling convention in engspchk (Vim script #195) let spchkdialect='can'
" Show syntax highlighting attributes of character under cursor (Vim " script #383) map <Leader>a :call SyntaxAttr()<CR>
" Automatically find scripts in the autoload directory au FuncUndefined * exec 'runtime autoload/' . expand('<afile>') . '.vim'
" File type related autosetting au FileType c,cpp setlocal cinoptions=:0,g0,(0,w1 shiftwidth=4 tabstop=4 au FileType diff setlocal shiftwidth=4 tabstop=4 au FileType html setlocal autoindent indentexpr= au FileType changelog setlocal textwidth=76
" Text file encoding autodetection au BufReadPre *.gb call SetFileEncodings('gbk') au BufReadPre *.big5 call SetFileEncodings('big5') au BufReadPre *.nfo call SetFileEncodings('cp437') au BufReadPost *.gb,*.big5,*.nfo call RestoreFileEncodings() au BufWinEnter *.txt call CheckFileEncoding()
" Detect charset encoding in an HTML file au BufReadPost *.htm* nested call DetectHtmlEncoding()
" Recognize standard C++ headers au BufEnter /usr/include/c++/* setf cpp au BufEnter /usr/include/g++-3/* setf cpp
" Setting for files following the GNU coding standard au BufEnter /usr/* call GnuIndent()
" Remove trailing spaces for C/C++ and Vim files au BufWritePre * call RemoveTrailingSpace() endif
"Fast edit vimrc if MySys() == 'linux' "Fast reloading of the .vimrc map <silent> <leader>ss :source ~/.vimrc<cr> "Fast editing of .vimrc map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr> "When .vimrc is edited, reload it autocmd! bufwritepost .vimrc source ~/.vimrc elseif MySys() == 'windows' " Set helplang set helplang=cn "Fast reloading of the _vimrc map <silent> <leader>ss :source ~/_vimrc<cr> "Fast editing of _vimrc map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr> "When _vimrc is edited, reload it autocmd! bufwritepost _vimrc source ~/_vimrc endif
" For windows version if MySys() == 'windows' source $VIMRUNTIME/mswin.vim behave mswin endif