使制表看起来不仅仅是空格

时间:2009-07-28 07:47:21

标签: python vim

如何使制表看起来与vim中的空格不同(例如突出显示)。

这对Python中的代码很有用。

6 个答案:

答案 0 :(得分:16)

我使用这样的东西:

set list listchars=tab:»·,trail:·,precedes:…,extends:…,nbsp:‗

需要Vim7,我不确定它会在浏览器中显示出来的程度,因为它使用了一些时髦的Unicode字符。使用一些古怪的角色是很好的,这样你就可以将标签与你自己输入的标签区分开来。

除了显示标签之外,在行尾显示空格非常有用,因此你知道要删除它们(它们很烦人)。

答案 1 :(得分:7)

许多其他人提到了'listchars'和'list'选项,但只是添加了另一个有趣的选择:

if &expandtab == 0
    execute 'syn match MixedIndentationError display "^\([\t]*\)\@<=\( \{'.&ts.'}\)\+"'
else
    execute 'syn match MixedIndentationError display "^\(\( \{' . &ts . '}\)*\)\@<=\t\+"'
endif
hi link MixedIndentationError Error

这将查看'expandtab'的当前设置(即,您是否有假装标签的硬标签或空格),并将突出显示外观的任何内容,如正确的缩进但是错误的形式。这些设计用于查看制表位,因此用于缩进的制表符后跟用于简单对齐的空格(不是'tabstop'的倍数)将不会突出显示为错误。

可以使用更简单的选项:如果您只想以鲜红色突出显示错误文件中的任何标签(或任何错误颜色),您可以这样做:

syn match TabShouldNotBeThereError display "\t"
hi link TabShouldNotBeThereError Error

或者如果您希望某行开头的空格被视为错误,您可以执行以下操作:

syn match SpacesUsedForIndentationError display "^ +"
hi link SpacesUsedForIndentationError Error

还有一些想法可以添加到混合...更多信息:

:help 'expandtab'
:help 'tabstop'
:help 'listchars'
:help 'list'
:help :exe
:help let-option
:help :hi-link
:help :syn-match
:help :syn-display

答案 2 :(得分:5)

使用listlistchars选项,如下所示:

:set list
:set listchars=tab:>-

答案 3 :(得分:3)

如果您执行以下操作:

:set list

然后所有TAB字符都显示为^I,所有尾随空格将显示为$

使用listchars,您可以控制用于任何空格的字符。所以,

:set listchars=tab:...

:set list一起使TAB显示为...

答案 4 :(得分:2)

此外,在剪切和粘贴文本时,禁用选项卡和空格的显示非常有用。你可以用

做到这一点
:set list!

重复命令后再次启用它。

答案 5 :(得分:2)

glenn jackman 询问如何输入字符(我假设他的意思是“»”等字符。)

Brian Carper 建议使用该字符的Unicode索引号的方法。由于许多这些与众不同的角色都是有向图[:help digraphs],你也可以使用CNTL-k快捷键,这通常更容易记住。

因此,例如,您可以通过键入CNTL-k和“&gt;”在插入模式下生成“»”人物两次。