菜鸟笔记
提升您的技术认知

Vim查看文本中空格和制表符的方法

在 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;;··//

这样就能清晰地区分制表符和空格了。