【问题标题】:Disable vim text wrapping by file type按文件类型禁用 vim 文本换行
【发布时间】:2012-03-18 06:38:40
【问题描述】:

我的 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? 上的类似但不完全相同的问题

【问题讨论】:

标签: vim


【解决方案1】:

首先,请注意:twtextwidth 是同一个东西(tw 只是缩写名称,变量通常有长短形式)所以你只需要前两行之一案例。

我怀疑您真正在寻找的是我之前寻找的东西,即:如何保持特定于各种文件类型的设置。它实际上变得相当复杂,因为某些设置(例如textwidth)是vim 所说的“本地到缓冲区”,而其他设置(例如wrap)是“本地到窗口”。差异归结为如果您(例如)运行vim foo.txt 然后使用:split 让两个窗口查看foo.txt 会发生什么。现在有一个缓冲区,因此有一个textwidth,用于foo.txt,但是有两个窗口,因此有两个wraps。

不过,在您开始使用此功能之前,您可能只想尝试http://vim.wikia.com/wiki/VimTip1510 中的建议,让每个设置都取决于filetype 的设置。编辑名为 foo.py 的文件将使用 Python 设置,因为 vim 会自动为名称以 .py 结尾的文件设置 filetype=python。如果文件名后缀未知或不明确,您可以手动设置文件类型(:set filetype=whatever)(例如,在编辑完全没有后缀但实际上是一个 shell 脚本的文件zog 时,您可以手动设置:set filetype=sh) ,您还可以找到很多其他有关使 vim 自动识别特定文件类型的信息。

(另一边注:我不同意他们的设置 tabstop=4;我使用 softtabstop=4smarttabsexpandtabs 以便在我的 *.py 文件中只得到空格。这样可以避免争论标签是每 4 列还是 8 列。:-) )

至于一般突出显示长行,请参阅http://vim.wikia.com/wiki/Highlight_long_lines 以了解您现在正在做什么,以及如果您拥有 vim 7.3,为什么它已过时。另见vim-80-column-layout-concerns

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-14
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    相关资源
    最近更新 更多