我知道在 stackoverflow 上有一些关于此的线程,但是当我在编辑器中编写“:set list”时,它似乎显示隐藏字符,但它没有显示我们遇到问题的代码中的隐藏字符。
有时现在我们的代码中有一些不可见的符号,如果循环中断,我不知道这些符号是如何到达那里的,除了一些奇怪的键盘组合被意外输入。代码本身看起来是正确的,但不可见的符号会破坏它.
我已经在网上搜索过这个,但我能找到的似乎是 vim 中的“:set list”命令,此外还必须更改隐藏字符的颜色,但是虽然这似乎显示了一些隐藏字符,但它并没有显示有问题的那些。我们得到了两个看起来像十字架的符号,一个看起来像手枪。我们还尝试在 sublime 文本中添加“draw_white_space”设置,但这似乎只显示,好吧,就像它所说的那样,但结果显示在谷歌上以显示隐藏字符,所以我试了一下。
我们能够看到符号在哪里的唯一方法是使用 DiffMerge 工具,我们无法在任何其他编辑器中看到这些符号,但实际上我们已经能够将符号复制到它自己的文件中并通过所有的 grep带有 -f grep 选项的文件可以工作,但在 vim 中显示字符会更容易,但使用键绑定(bind)。
有人有什么建议吗?当问题是一个不可见的符号时,这导致我们使用更多的时间来调试代码。
最佳答案
尝试以下搜索命令:
/[^ -~<09>]
(您可以通过按 Tab 键获得
<09>
)。或者,如果您想摆脱那些讨厌的标签,只需:/[^ -~]
这将找到并突出显示任何非 ASCII 或控制 ASCII 字符。
如果您仍然有隐藏字符,您可以在搜索之前尝试以下命令:
:set enc=latin1
这将防止任何奇怪的 Unicode 字符出现在您的代码中。