我已经关闭了自动换行的Vim的在我加入这个的vimrc:
set nowrap
Run Code Online (Sandbox Code Playgroud)
但是,我想在编辑*.tex文件时自动打开换行.所以,我把它添加到我的vimrc:
augroup WrapLineInTeXFile
autocmd!
autocmd FileType tex set wrap
augroup END
Run Code Online (Sandbox Code Playgroud)
当检测到文件类型为TeX时,这应该启用换行.这与tex文件的预期效果一样,但是如果我在同一个Vim会话中打开一个非tex文件,它会打开换行!
在Vim上的不同文件扩展名上自动启用和禁用自动换行建议使用BufRead.但是,即使这样也会产生相同的效果:如果我先打开TeX文件,然后打开非TeX文件,则非TeX文件会打开换行.
如何仅针对特定文件类型正确启用换行?
你可以用setlocal它.它只会影响当前的缓冲区.
augroup WrapLineInTeXFile
autocmd!
autocmd FileType tex setlocal wrap
augroup END
Run Code Online (Sandbox Code Playgroud)
这将适用于每个新的TeX缓冲区.
该'wrap'选项是window 的本地选项。当您使用 时:set,它也将应用于任何新打开的窗口。你想用:setlocal.
另外,虽然你的:augroup WrapLineInTeXFile作品有效,但它很麻烦并且不能扩展到许多设置。如果:filetype plugin on在 中~/.vimrc,您可以将文件类型特定的设置(如:setlocal wrap)放置在~/.vim/after/ftplugin/tex.vim(使用after目录允许您覆盖由 完成的任何默认文件类型设置$VIMRUNTIME/ftplugin/tex.vim)。