我在 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文件会打开换行符。
如何仅针对特定文件类型正确启用换行?
答案 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
)完成的任何默认文件类型设置。