在Vim上的不同文件扩展名上自动启用和禁用自动换行

在Vim上的不同文件扩展名上自动启用和禁用自动换行,vim,word-wrap,file-extension,Vim,Word Wrap,File Extension,我通常需要阅读长行的.txt文件,同时编辑一些源文件,我喜欢在.txt文件中看到wrap,而不是在那些不在其中的文件中 当然我可以:set wrap和:set linebreak,但是有没有办法让它自动运行,并且取决于文件扩展名?我想:autocmd BufNewFile,BufRead*.txt set wrap应该可以做到这一点我可以想到两个选项。首先,您可以按照Tassos的建议使用autocmd: :au BufNewFile,BufRead *.txt set wrap 见: 另一种

我通常需要阅读长行的.txt文件,同时编辑一些源文件,我喜欢在.txt文件中看到wrap,而不是在那些不在其中的文件中


当然我可以:set wrap和:set linebreak,但是有没有办法让它自动运行,并且取决于文件扩展名?

我想
:autocmd BufNewFile,BufRead*.txt set wrap
应该可以做到这一点

我可以想到两个选项。首先,您可以按照Tassos的建议使用autocmd:

:au BufNewFile,BufRead *.txt set wrap
见:

另一种选择(如果您已经按照建议进行了多个设置,则可能更适用):在vim配置文件夹(见下文)的
after/ftplugin
目录中创建一个名为
txt.vim
的文件,每当您打开
.txt
文件时,它都会被获取。您可以将其放入普通的
ftplugin
目录(而不是/ftplugin之后的
),但它不会加载
.txt
文件的任何内置设置

将所需的任何命令放入此文件:

" This is txt.vim in the ftplugin directory
set wrap
set linebreak
见:

Vim配置文件夹

在Windows上,这通常类似于:

C:\Documents and Settings\%USERNAME%\vimfiles\after\ftplugin\txt.vim
(我想)或者

甚至:

C:\vim\vimfiles\after\ftplugin\txt.vim
在Linux上,它是:

~/.vim/after/ftplugin/txt.vim
有关详细信息,请参阅:

:help runtimepath

您可以使用自动命令做更多的事情,请参阅此处:

“set nowrap”要实现与ftplugin路线相反的效果,我还需要添加
au!BufNewFile,BufRead*.txt setf txt
到我的
filetype.vim
文件。@sirlancelot我想这是指示修改filetype.vim的计数器。您应该将其添加到.vimrc中。我认为ftplugin文件应该使用
setlocal
而不是
set
,这样设置就不会应用于所有打开的缓冲区。
C:\vim\vimfiles\after\ftplugin\txt.vim
~/.vim/after/ftplugin/txt.vim
:help runtimepath