Vim:使文本在 80 列标记后变红或屏幕闪烁?

iDo*_*ter 1 vim vimrc

有没有办法让 Vim 在一行超过n字符后警告我?

一些简单的东西,比如屏幕闪烁或文本变成粗体红色或其他东西。

!! 如果n可以在每个单独的窗口中设置一个易于设置的变量(我通常使用 80 列,但对于 PHP 使用 100 列),则可以加分。

xai*_*zek 5

有两种可能的解决方案:

  1. 如果您的 Vim 版本至少是 7.3,只需设置'colorcolumn'选项(参见:help 'colorcolumn'),例如设置为 81:

    set colorcolumn=81
    
    Run Code Online (Sandbox Code Playgroud)

    它还可以突出显示不止一列:

    let &colorcolumn = join(range(81, 400), ',')
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您有 7.3 之前的 Vim 版本,您可能需要定义自定义突出显示规则以突出显示特定列之后的所有字符,例如:

    syn match tooLong /\%81c.*$/
    hi link tooLong Error
    
    Run Code Online (Sandbox Code Playgroud)

要为不同的文件类型设置不同的设置,请将此命令放入适当的文件类型插件(例如 to ~/.vim/ftplugin/cpp.vim)。或定义自动命令(见:help :autocmd)由触发FileType事件(见:help FileType)在你的.vimrc