2013-03-13 99 views
6

我已經在我的的vimrc加入這Vim的關閉line wrap如何在Vim中爲某些文件類型啓用換行?

set nowrap 

不過,我想有自動換行自動打開,當我編輯*.tex文件。所以,我把它添加到我的vimrc中:

augroup WrapLineInTeXFile 
    autocmd! 
    autocmd FileType tex set wrap 
augroup END 

這應該在檢測到文件類型爲TeX時啓用換行。這可以按照tex文件的預期工作,但是如果我在同一個Vim會話中打開一個非tex文件,它會打開行換行!

Enabling and disabling word wrap automatically on different file extensions on Vim建議使用BufRead代替。但是,即使這也有同樣的效果:如果我第一次打開一個TeX文件,然後是一個非TeX文件,非TeX文件打開了換行。

我該如何正確啓用只針對特定文件類型的換行?

回答

5

您可以使用setlocal。它只會影響當前的緩衝區。

augroup WrapLineInTeXFile 
    autocmd! 
    autocmd FileType tex setlocal wrap 
augroup END 

這將應用於每個新的TeX緩衝區。

+0

Jim:我不知道setlocal命令。謝謝! – 2013-03-13 07:57:59

3

'wrap'選項是本地窗口。當您使用:set時,它也適用於任何新打開的窗口。你想使用:setlocal

此外,儘管您的:augroup WrapLineInTeXFile有效,但它很麻煩並且不能擴展到許多設置。如果您在~/.vimrc:filetype plugin on,您可以在~/.vim/after/ftplugin/tex.vim將特定文件類型設置(如:setlocal wrap)(使用目錄允許您覆蓋由$VIMRUNTIME/ftplugin/tex.vim做過任何文件類型的默認設置)。

+0

Ingo:儘管在這種情況下我不需要它,但如果我在我的vimrc中保存了一些設置,那麼你的建議很有用:-) – 2013-03-13 08:09:35

相關問題