如何在 vim 中启用类似纳米的空白突出显示?

如何在 vim 中启用类似纳米的空白突出显示?

nano有一个有用的语法突出显示功能,可以在以下两种情况下实际突出显示空白(制表符和空格):(1) 空白在最后一个字符或行开头与其之间没有非空白字符,并且 ( 2)该文件是源代码,而不是纯文本(如购物清单)。我如何在 中模仿这种行为vim

答案1

我使用set listandset listchars.vimrc显示tabs和尾随white spaces,您可以使用像这样的选择性文件类型的条件。

if !(&filetype == "txt")
  set list                " show special characters
  set listchars=tab:→\ ,trail:·,nbsp:·
endif

因此,当这些字符存在时,我的文件看起来像这样。

function someFunc() { // no trailing spaces here
→   var a = "hola"; // 3 trailing spaces.···
    alert(a); // this line starts with spaces instead of tab
// next a line with 4 white spaces and nothing else
····
// next a line with a couple tabs
→   →   
}

注:·不是.

编辑

因此,要回答您的评论,您可以通过将其添加到您的 中来做到这一点~/.vimrc,请确保将其添加到颜色方案之后,否则它将被hi clear删除。

if !(&filetype == "txt")
  highlight WhiteSpaces ctermbg=green guibg=#55aa55
  match WhiteSpaces /\s\+$/
endif

您可以根据需要更改突出显示颜色并优化正则表达式。/\s\+$/将匹配尾随空格或制表符和仅包含这两个字符之一的行。如果您只想突出显示仅包含制表符和空格的行,请使用/^\s\+$/

相关内容