我不知道我的源代码文件中怎么突然出现了 ^I 字符。
凡是有空格的地方(但仅限于行首),它都会显示为 ^I。这使我的代码非常难以阅读。
我正在使用 vim 作为编辑器。
谁能告诉我是什么原因导致了这种情况的发生以及我该如何用看不见的空白处再次替换它们?
答案1
^I
(Ctrl-I)表示制表符(ASCII 中的 9)。通常,Vim 按选项中指定的空格字符数显示制表符tabstop
。但是,设置list
选项会显示各种不可打印的字符,其效果之一是将 Tab 显示为控制字符。要检查是否设置了此选项,您可以运行:set list?
(和set listchars?
)。
要将制表符替换为空格,请运行:%s/^I/ /g
。可以通过键入-然后键入 来^I
获取控制字符。CtrlVTab
答案2
可以在 VIM 中用正则表达式替换它们。
:%s/[\x09]/ /gc
检查是否有条目
set list
在 .vimrc 文件中。提示取自已接受的答案。