按文件类型禁用vim文本换行

3

我有一个vimrc的部分(我并不完全理解),它可以将文本包装到80列,并且如果有这样的行,就会将多余的部分标记为红色。

set textwidth=80
set tw=80
set wrap
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/

总的来说,这个功能运行良好,但是当文件类型为.py(以及其他文件类型)时,我希望禁用整个功能(包装和匹配)。

类似但不完全相同的问题可以在在vim中限制匹配某些文件类型?中找到。


这看起来像是一个重复的问题:https://dev59.com/QU7Sa4cB1Zd3GeqP6MLK - joce
1个回答

4
首先,需要注意的是:twtextwidth是同一件事情(tw只是它的缩写形式,变量通常有长短两种形式),因此在任何情况下,你只需要这两行中的一行。
我怀疑你真正想要的是我之前正在寻找的东西,即:如何保持特定于各种文件类型的设置。实际上,这变得相当复杂,因为有些设置(例如textwidth)是vim所谓的“本地到缓冲区”,而其他设置(例如wrap)是“本地到窗口”。区别在于如果你(例如)运行vim foo.txt,然后使用:split来获取查看foo.txt的两个窗口,那么现在有一个缓冲区,因此一个textwidth,对于foo.txt,但是有两个窗口,因此有两个wrap
但在开始使用此功能之前,你可能只想尝试http://vim.wikia.com/wiki/VimTip1510中建议的使每个设置依赖于设置了什么filetype。编辑名为foo.py的文件将使用Python设置,因为vim自动为文件名以.py结尾的文件设置filetype=python。如果文件名后缀未知或模糊(例如,在编辑没有后缀名但实际上是shell脚本的文件zog时,你可以手动:set filetype=sh),则可以手动设置文件类型,并且还有很多其他信息可以找到,使vim自动识别特定的文件类型。
至于一般情况下如何突出显示长行,请参见http://vim.wikia.com/wiki/Highlight_long_lines,了解你现在正在做什么以及如果你有vim 7.3,则它已过时。请参见vim-80-column-layout-concerns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接