如何只为Vim中的某些文件类型启用换行?

时间:2013-03-13 07:50:56

标签: vim word-wrap

我在 vimrc 中添加了 Vim ,关闭了 Vim 中的line wrap

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文件会打开换行符。

如何仅针对特定文件类型正确启用换行?

2 个答案:

答案 0 :(得分:6)

您可以使用setlocal。它只会影响当前缓冲区。

augroup WrapLineInTeXFile
    autocmd!
    autocmd FileType tex setlocal wrap
augroup END

这将适用于每个新的TeX缓冲区。

答案 1 :(得分:4)

'wrap'选项是本地窗口。使用:set时,它也适用于任何新打开的窗口。您想使用:setlocal

此外,尽管您的:augroup WrapLineInTeXFile有效,但它很麻烦,无法扩展到许多设置。如果您:filetype plugin on中有~/.vimrc,则可以在:setlocal wrap中放置特定于文件类型的设置(例如~/.vim/after/ftplugin/tex.vim)(使用目录后的目录允许您覆盖$VIMRUNTIME/ftplugin/tex.vim)完成的任何默认文件类型设置。