在 Vim 中,可以使用以下方法区分空格和制表符(Tab):
方法一:启用 :set list 显示不可见字符
默认情况下,制表符会显示为 ^I,空格则显示为普通空格(不易区分)。
执行命令:
:set list
- 制表符:显示为
^I - 空格:仍然显示为空格
要关闭显示,执行 :set nolist。
方法二:自定义 listchars 让区分更明显
通过设置 listchars,可以让制表符和空格以不同的符号显示。
:set listchars=tab:>-,space:·
:set list
- 制表符:显示为
>---(一个>后面跟连续的-,长度与 Tab 宽度一致) - 空格:显示为
·(中间点)
其他常用选项:
tab:>-,trail:-:只高亮行尾空格tab:>-,space:.,extends:>,precedes:<:完整配置
方法三:使用 :set expandtab? 检查模式
该命令不会直接显示,但可以判断当前文件是否启用了“将 Tab 自动替换为空格”:
:set expandtab?
- 输出
expandtab表示 Tab 会被自动展开为空格(文件中可能没有真正的制表符) - 输出
noexpandtab表示会保留制表符
方法四:搜索制表符或空格
- 搜索制表符:
/\t - 搜索连续空格:
/(两个空格,可根据需要调整)
搜索后,Vim 会高亮匹配项。
示例效果
启用 :set list listchars=tab:>-,space:. 后,一行内容如:
int a = 1; // 其中int和a之间是Tab,1后面两个空格
会显示为:
int>---a·=·1;;··//
这样就能清晰地区分制表符和空格了。

菜鸟笔记