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

Mar*_*man 5 vim file-extension word-wrap

我通常必须读取长行的.txt文件,同时编辑一些源文件,我喜欢在.txt文件上看到自动换行,而不是在那些不是.

当然我可以:set wrap和:set linebreak,但有没有办法让它自动化,并依赖于文件扩展名?

DrA*_*rAl 10

我能想到两种选择.首先,您可以使用Tassos建议的autocmd:

:au BufNewFile,BufRead *.txt set wrap
Run Code Online (Sandbox Code Playgroud)

看到:

:help autocmd
Run Code Online (Sandbox Code Playgroud)

另一种选择(如果您已经建议了多个设置,则可能更适用):在after/ftplugin您调用的vim配置文件夹(见下文)的目录中创建一个文件,txt.vim无论何时打开.txt文件,它都会被提供.您可以将它放在普通ftplugin目录(而不是after/ftplugin)中,但是.txt不会加载任何文件的内置设置.

将您想要的任何命令放在此文件中:

" This is txt.vim in the ftplugin directory
set wrap
set linebreak
Run Code Online (Sandbox Code Playgroud)

看到:

:help after-directory
:help ftplugin
Run Code Online (Sandbox Code Playgroud)

Vim配置文件夹

在Windows上,这通常是这样的:

C:\Documents and Settings\%USERNAME%\vimfiles\after\ftplugin\txt.vim
Run Code Online (Sandbox Code Playgroud)

(我想),或者

C:\Program Files\Vim\vimfiles\after\ftplugin\txt.vim
Run Code Online (Sandbox Code Playgroud)

甚至:

C:\vim\vimfiles\after\ftplugin\txt.vim
Run Code Online (Sandbox Code Playgroud)

在Linux上,它是:

~/.vim/after/ftplugin/txt.vim
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅:

:help runtimepath
Run Code Online (Sandbox Code Playgroud)


Tas*_*sos 5

我想:autocmd BufNewFile,BufRead *.txt set wrap应该做的伎俩