我有一段我的vimrc(我不完全理解)将文字包裹在80列以上,如果有这样的行,则将多余的红色涂上颜色。
set textwidth=80
set tw=80
set wrap
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/
一般来说效果很好,但是当文件类型为.py
(原则上是其他文件类型)时,我想禁用整个事物(包装和匹配)。
答案 0 :(得分:3)
首先,注意:tw
和textwidth
是相同的事情(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会自动为名称以filetype=python
结尾的文件设置.py
。如果文件名后缀未知或不明确(例如,编辑文件:set filetype=whatever
时根本没有后缀但实际上是shell脚本,您可以手动设置文件类型(zog
),您可以手动:set filetype=sh
),在使vim自动识别特定文件类型时,您可以找到很多其他信息。
(另一方面注意:我不同意他们的设置tabstop=4
;我使用softtabstop=4
和smarttabs
以及expandtabs
这样我就得不到空格了* .py文件。这可以避免争取是否每隔4或8列放置标签。:-))
至于突出显示一般的长行,请参阅http://vim.wikia.com/wiki/Highlight_long_lines,了解您现在正在做什么,以及如果您使用vim 7.3,为什么它会被废弃。另请参阅vim-80-column-layout-concerns。