8

我通过在我的vimrc中添加这个来关闭Vim中的换行

set nowrap

但是,我想在编辑*.tex文件时自动打开换行。所以,我把这个添加到我的 vimrc 中:

augroup WrapLineInTeXFile
    autocmd!
    autocmd FileType tex set wrap
augroup END

当检测到文件类型为 TeX 时,这应该启用换行。这对 tex 文件按预期工作,但如果我在同一个 Vim 会话中打开一个非 tex 文件,它会打开换行!

在 Vim 上的不同文件扩展名上自动启用和禁用自动换行建议改用 BufRead。但是,即使这样也有同样的效果:如果我先打开一个 TeX 文件,然后打开一个非 TeX 文件,则非 TeX 文件会打开换行。

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

4

2 回答 2

8

你可以用setlocal这个。它只会影响当前缓冲区。

augroup WrapLineInTeXFile
    autocmd!
    autocmd FileType tex setlocal wrap
augroup END

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

于 2013-03-13T07:54:55.323 回答
4

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

此外,虽然你的:augroup WrapLineInTeXFile作品,它很麻烦,不能扩展到许多设置。如果您有:filetype plugin on~/.vimrc您可以将特定于文件类型的设置(如:setlocal wrap)放入~/.vim/after/ftplugin/tex.vim(使用after目录允许您覆盖由 完成的任何默认文件类型设置$VIMRUNTIME/ftplugin/tex.vim)。

于 2013-03-13T08:06:50.317 回答