由於習慣了vim的輕巧,不想在安裝額外的tex編輯器,就按照自己的使用習慣對vim進行了相應的配置。
1. vim-latex外掛程式的安裝
- :http://sourceforge.net/projects/vim-latex/files/
- 將下載的vim-latex-1.8.23-20120125.768-git8b62284.tar.gz直接解壓到~/.vim中
2 vim配置
(1)vimrc中與latex相關的配置
- 405 " vim latex suite
- 406 " http://vim-latex.sourceforge.net/index.php?subject=download&title=Download
- 407 " 使grep總是組建檔案名
- 408 set grepprg=grep\ -nH\ $*
- 409 " vim預設把空的tex檔案設為plaintex而不是tex,導致latex-suite不被載入
- 410 let g:tex_flavor='latex'
- 411 set iskeyword+=:
- 412 autocmd BufEnter *.tex set sw=2
- 413
(2)修改~/.vim/ftplugin/latex-suite/texrc,以便使用xelatex來編譯tex檔案,用evince預覽pdf
- 86 if has('macunix')
- 87 TexLet g:Tex_DefaultTargetFormat
= 'pdf'
- 88 else
- 89 TexLet g:Tex_DefaultTargetFormat
= 'pdf' /*都產生pdf*/
- 90 endif
- 115 TexLet g:Tex_CompileRule_pdf
= 'xelatex -interaction=nonstopmode $*' /*用xelatex進行編譯*/
- 145 TexLet g:Tex_ViewRule_pdf
= 'evince' /*用evince來預覽產生的pdf*/
3. vim-latex 常用提示
(1)常用的快速鍵
Ctrl-J,F5, F7,F9,Shift-F5,Shift-F7,/ll (compile快速鍵),/lv(view pdf 快速鍵),/ls,Ctrl-X Ctrl-K(根據字典補全) 等。
(2)寫出/cite{ 後按 F9 無反應,沒有給出交叉引用,原因在於vim中的Python介面對latex-suite來說有些問題,將其禁用即可。
只需要將 ~/.vim/ftplugin/latex-suite/texrc 中預設的開啟~/.vim/ftplugin/latex-suite/texrc,將
TexLet g:Tex_UsePython = 1
改為
TexLet g:Tex_UsePython = 0
就行了!
(3) 為了能夠正向搜尋,應設定好參數並使用/ll編譯,然而當工作目錄下有makefile時,/ll並非執行設定的編譯命令,而是執行makefile,於是導致無法正向搜尋。
只要禁用makefile即可,同樣~/.vim/ftplugin/latex-suite/texrc中
TexLet g:Tex_UseMakefile = 0(4) 正向搜尋設定,在 ~/.vimrc 中指定let g:Tex_CompileRule_dvi='latex -src-specials -interaction=nonstopmode $*'
說明上說還要設定 :TCTarget dvi ,可是沒有設也行,反而把這句話寫在上面檔案中時運行vi會提示錯誤,但是在vi中執行該命令卻可以,反正能用就不管它了。設定好了以後需重新編譯tex檔案(用/ll),然後/ls可以搜尋並預覽。
(5) 為了方便,自己也做了一些設定,包括快速鍵,在 ~/.vim/ftplugin/tex.vim 中:
map <F4> <ESC>:q<CR> "F4關閉視窗(buffer)
map <F2> <ESC>:w<CR>/ll "F2儲存並編譯
imap <F2> <ESC>:w<CR>/ll
map <F3> <ESC>/lv "F3查看
imap <F3> <ESC>/lv
nmap <Tab> <C-j> "用Tab鍵來代替Ctrl-j跳轉,方便多了
imap <Tab> <C-j>
vmap <Tab> <C-j>
set keywordprg=:help "按K鍵尋找游標處單詞的協助,預設是man
cmap xxx !make
set iskeyword+=.,_ "便於fig.xx,prl101_12345等形式的搜尋補全,否則預設情況下不把fig.xx當成一個詞,而是當成fig和xx兩個次,中間的“.”被當做詞的分隔字元了。
(6) 臨時取消快速鍵定義,比如你想輸入雙引號,可是一打出"就自動變成``。
那麼要怎麼禁止自動替換,直接輸出"呢?
記住 <Ctrl-v> 即可!
<Ctrl-v>" 得到 "
SS<Ctrl-v>S 得到 SSS
~<Ctrl-v>~ 得到 ~~