如何使vim中的制表符看起来与空格不同(以示例高亮)。
这对于Python代码非常有用。
这对于Python代码非常有用。
我使用类似这样的东西:
set list listchars=tab:»·,trail:·,precedes:…,extends:…,nbsp:‗
需要 Vim7,而且我不确定这个在浏览器中会显示得多好,因为它使用了一些奇怪的 Unicode 字符。使用一些奇特的字符很好,这样你就可以将制表符与你自己输入的内容区分开来。
除了显示制表符外,显示行尾处的空格也很有用,这样你就知道要将它们删除(它们很烦人)。
许多人已经提到了'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
list
和listchars
选项,例如这样::set list
:set listchars=tab:>-
:set list
如果存在制表符,则所有TAB字符将显示为^I
,所有尾随空格将显示为$
。
使用listchars
,您可以控制任何空格使用的字符。因此,
:set listchars=tab:...
与:set list
一起使用可将TAB键显示为...
。
:set list!
您可以通过重复执行该命令来重新启用它。
Brian Carper 提供了一种使用字符的Unicode索引号的方法。由于许多这些独特外观的字符是二合字[:help digraphs],您还可以使用CNTL-k快捷键,这通常更容易记住。
例如,您可以在插入模式下通过键入CNTL-k和两个">"字符来生成“»”。