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

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

最佳答案

首先要注意:twtextwidth是一回事(tw只是简称,变量一般有长和缩写形式),因此在任何情况下您只需要前两行中的一行。

我怀疑您真正要查找的是我之前查找的内容,即:如何保持特定于各种文件类型的设置。它实际上变得相当复杂,因为一些设置(如 textwidth)是 vim 所说的“局部于缓冲区”,而其他设置(如 wrap)是“局部于窗口”。区别归结为如果您(例如)运行 vim foo.txt 然后使用 :split 获得两个窗口查看 foo.txt。对于 foo.txt,现在有一个缓冲区,因此有一个 textwidth,但是有两个窗口,因此有两个 wrap

不过,在您开始使用此功能之前,您可能只想尝试 http://vim.wikia.com/wiki/VimTip1510 中的建议。使每个设置取决于 filetype 设置的内容。编辑名为 foo.py 的文件将使用 Python 设置,因为 vim 会自动为名称以 .py 结尾的文件设置 filetype=python。如果文件名后缀未知或不明确(例如,在编辑根本没有后缀的文件 zog 时,您可以手动设置文件类型(:set filetype=whatever)但它实际上是一个 shell 脚本,您可以手动 :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 .

关于vim - 按文件类型禁用 vim 文本换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753697/

相关文章:

regex - 替代字符串中组上的vim调用函数

vi 命令行相当于 CTRL-]?

bash - Vim 在交互模式下无法识别别名?

vim - 如何获取当前正在执行的vim脚本的路径

vim - 当我按一个 'r' 时,vim 处于什么模式?是否可以在此处进行映射?

python - Python 的 .vimrc 配置

vim - 使 vim 更详细(使击键可见)

vim - 使用 Vim 处理 "colourize"文件或输入流

vim - 折叠注释和vim/gvim中的所有功能

vim - 将 vim 光标列颜色更改为 vim 背景之外的其他颜色?