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

时间:2012-03-17 21:03:06

标签: vim

我有一段我的vimrc(我不完全理解)将文字包裹在80列以上,如果有这样的行,则将多余的红色涂上颜色。

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

一般来说效果很好,但是当文件类型为.py(原则上是其他文件类型)时,我想禁用整个事物(包装和匹配)。

Limiting a match in vim to certain filetypes?

上的类似但不完全相同的问题

1 个答案:

答案 0 :(得分:3)

首先,注意: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会自动为名称以filetype=python结尾的文件设置.py。如果文件名后缀未知或不明确(例如,编辑文件:set filetype=whatever时根本没有后缀但实际上是shell脚本,您可以手动设置文件类型(zog),您可以手动:set filetype=sh),在使vim自动识别特定文件类型时,您可以找到很多其他信息。

(另一方面注意:我不同意他们的设置tabstop=4;我使用softtabstop=4smarttabs以及expandtabs这样我就得不到空格了* .py文件。这可以避免争取是否每隔4或8列放置标签。:-))

至于突出显示一般的长行,请参阅http://vim.wikia.com/wiki/Highlight_long_lines,了解您现在正在做什么,以及如果您使用vim 7.3,为什么它会被废弃。另请参阅vim-80-column-layout-concerns