#1 楼
是的,请使用listchars:set list
set listchars=tab:>-
如果将这两行放在.vimrc中,则开始位置的选项卡将显示为
>
,其余部分将显示为-
。选项卡。评论
注意:我喜欢使用set listchars = tab:!·,trail:·,恕我直言·比-更清晰-...您需要一个相当新的Vim版本才能正常工作(我不确定确切是哪个版本) 7.3.x)...
–马丁·图尔诺伊(Martin Tournoij)
2015年2月5日在15:07
我喜欢使用Unicode字符▸,因为它比>略小。目前,我通过标记eol看到尾随空白(尽管我可以尝试上面的方法)。我的设置是:set listchars = eol:¬,tab:▸\和
–马丁·约克
2015年2月6日在21:43
这对我来说效果最好,因为它很干净,所以可以设置listchars = eol:·,tab:⍿·,trail:×·。
– 71GA
19/12/30在4:20
这是我当前正在使用的:set listchars = tab:┌┬┐,trail:·。 (非ASCII字符为:250c:框形图上下左右,252c:框形图上下左右,2510:框形图上下,b7:中间点。)
–基思·汤普森(Keith Thompson)
20年6月25日,0:24
我注意到在vim 8.2中,显然并不是所有的Unicode字符都是合法的,我在弄乱使用Trail:﹍之类的奇怪字符,然后它就爆了。不确定这些东西的限制是什么...
–user9645
20/12/23在15:01
#2 楼
基本答案是:set list
,它会使选项卡显示为^I
。 :set list
只是一个问题,因为它无法保持屏幕上的视觉对齐。例如:%.o: %.cpp
^Ig++ -c $<
不好看,特别是当您希望
g
的g++
出现在p
的第一个cpp
(假设tabstop=8
)下时。 > 因此,我建议在您的
.vimrc
中插入类似:set listchars=tab:␉·
的内容(要清楚,这是Unicode字符U + 2409水平标记符号,后跟U + 00B7中点。)如
:help listchars
中所述,tab:xy
的两个字符设置会导致视觉对齐得以保留:tab:xy Two characters to be used to show a tab. The first
char is used once. The second char is repeated to
fill the space that the tab normally occupies.
"tab:>-" will show a tab that takes four spaces as
">---". When omitted, a tab is show as ^I.
上面的示例将出现在屏幕显示为:
%.o: %.cpp
␉·······g++ -c $<
我个人以
listchars
全力以赴::set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵
对于
eol
,我使用U + 23CE返回符号对于
trail
,我使用U + 2420 SYMBOL FOR SPACE 对于
nbsp
,我使用U + 23B5底部方形支架这些字符非常独特,以致它们很少出现在字面上n文档文本。
要在
vimrc
中键入这些特殊字符,请在插入模式下按Ctrl-vu 23CE
,如:help utf-8-typing
中所述。评论
另请参阅set lcs = tab:├─
–sch
2015年2月5日在15:33
这才给我一个?在eol
– WendyG
19-10-7在12:45
#3 楼
突出显示标签页临时标签突出显示页
对于偶尔使用,可以使用以下搜索
/
命令简单地突出显示文档中的所有标签页:/\t
要删除突出显示标签,只需键入
:noh
这是:nohlsearch
(没有高亮度照明)的缩写。并将其永久化-请参见Vim Wiki。评论
您还可以使用:match Error / \ t /独立于搜索寄存器和hlsearch(键入:match清除它)来突出显示选项卡(或与此相关的任何其他模式)。
–马丁·图尔诺伊(Martin Tournoij)
16年8月25日在22:56
@Carpetsmoker在Vim Wiki上可以找到更多有关这些有用的突出显示命令的信息(包括与结尾的空格结合使用!),用于突出显示不需要的空间。
– Serge Stroobandt
16年8月26日在19:05
#4 楼
我个人喜欢插件indentLine的使用,该插件在缩进级别显示一条垂直线。尤其在缩进很重要的python中,它有很大的帮助。
除其他功能外,它还提供了切换命令,可以将其映射到按键组合,以便在不需要时可以将其关闭。
评论
我相信这个插件是为了缩进空格而设计的吗?
–杰克·拜曼
17年12月11日在18:02
确实:>此插件用于在每个缩进级别显示带有空格缩进的代码的垂直细线。对于带有制表符缩进的代码,我认为不需要支持它,因为您可以使用:set list lcs = tab:\ | \(这里是一个空格)。
–thiagowfx
20年7月6日在3:22
缩进指南也支持选项卡:github.com/nathanaelkane/vim-indent-guides
– aderchox
20年7月28日在5:13
#5 楼
最简单的方法是执行:set list
,它将制表符显示为^I
,行尾显示为$
。我喜欢使用调用
:set invlist
<的映射br />在常规显示和列表显示之间切换。
例如:
:nmap <leader>l :set invlist<cr>
这使我可以快速检查是否有选项卡vs空间问题,然后返回常规显示。
#6 楼
您可能希望在常规终端和gvim中以不同的方式显示选项卡。set list!
if has('gui_running')
set listchars=tab:▶\ ,trail:·,extends:\#,nbsp:.
else
set listchars=tab:>.,trail:.,extends:\#,nbsp:.
endif
(为完整性起见,以防他人发现它有用)。
#7 楼
我将@ john-om方法与此字符结合在一起Unicode字符“零宽度空间”(U + 200B)
和indentLine插件。
因此,如果我使用空格,则插件会显示格式优美的缩进,如果我使用标签,则管道是唯一可见的标记,这就是我想要的。我还可以切换制表符的标记。
" indicate tabs
:nmap <leader>l :set invlist<cr>
set list listchars=tab:❘⠀,trail:·,extends:»,precedes:«,nbsp:×
#8 楼
使用listchars
可以很容易地做到这一点,方法是将选项卡指定为:,tab:\ \ ┊,
通过在
tab
声明的前面提供两个转义空格,vim
将重复这些空格。这与默认情况相反,在默认情况下,vim更喜欢第二个字符作为重复字符。与使用类似
IndentLine
这样的插件而不会产生额外开销的效果类似。这是使用以下完整的listchars
配置的外观示例:set listchars=eol:↓,tab:\ \ ┊,trail:●,extends:…,precedes:…,space:·
评论
欢迎来到Vi和Vim!请注意,前2个答案(以及其他一些答案)已经提到了此解决方案。
– D. Ben Knoble♦
20年7月14日在12:52
@ D.BenKnoble谢谢您的友好欢迎和反馈!但是,我不同意。这是@mike响应的替代方法。虽然其他响应都引用了listchars,但是它们都没有解释如何重复重复左字符以实现与IndentLine这样的插件相同的结果。
–旋转
20 Jul 17'6:47
@ D.BenKnoble我已改写我的答案,以期澄清我的答案与所提到的其他答案有何不同。
–旋转
20年7月17日在6:54
评论
就像一个旁注,您可以配置为每次保存文件时都使用retab将所有制表符转换为空格。如果您已安装vim-faq,则可以在此处获得脱机答案::h vim-faq并搜索/ invisible。难记的标签是:h faq-19.8。