linux - 如何搜索不可见的控制字符

标签 linux bash vim sublimetext2

我知道 stackoverflow 上有一些关于此的线程,但是当我在编辑器中编写“:set list”时,它似乎显示隐藏字符,但它不显示我们遇到问题的代码中的隐藏字符。

有时候,如果循环中断,我们的代码中会出现一些不可见的符号,我不知道这些符号是如何到达那里的,除了一些奇怪的键盘组合是不小心输入的。代码本身看起来是正确的,但不可见符号打破它。

我在网上搜索过这个,但我能找到的似乎是 vim 中的“:set list”命令,此外还必须更改隐藏字符的颜色,但是虽然这似乎显示了一些隐藏字符,但它并没有显示有问题的。我们得到两个看起来像十字的符号,一个看起来像手枪。我们还尝试在 sublime text 中添加“draw_white_space”设置,但这似乎只显示,好吧,就像它说的那样,但结果在谷歌上显示为显示隐藏字符,所以我试了一下。

我们能够看到符号位置的唯一方法是使用 DiffMerge 工具,我们无法在任何其他编辑器中看到这些符号,但我们实际上已经能够将符号复制到它自己的文件中并且使用 -f grep 选项对所有文件进行 grep,这是可行的,但在 vim 中显示字符会更容易,但使用键绑定(bind)。

有人有什么建议吗?当问题是一个不可见的符号时,这导致我们花费更多的时间来调试代码。

最佳答案

尝试以下搜索命令:

/[^ -~<09>]

(按 Tab 键得到 <09>)。或者,如果您想摆脱那些讨厌的标签,只需:

/[^ -~]

这将查找并突出显示任何非 ASCII 或控制 ASCII 字符。

如果你仍然有隐藏的字符在那里,你可以在搜索之前尝试这个命令:

:set enc=latin1

这将防止任何奇怪的 Unicode 字符出现在您的代码中。

关于linux - 如何搜索不可见的控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23103466/

相关文章:

ruby - 安装 RVM 时出错

c - 当我向服务器发送大量 kill() 命令时,我的服务器无法处理所有信号

python - 相当于 Linux 上的 GetTickCount()

linux - 使用 CMake 查找 libffi 头文件

sql-server - Linux 上的 MS SQL Server : set password using script

linux - 我们必须在哪里放置 linux 命令?

linux - 用于等待日志文件中特定字符串的 Bash 脚本优化

vim - 如何为给定目录/路径中的所有文件设置 vim 的默认语法突出显示?

vim - 在 gVim 中自动生成 c 代码

git - 在 git 的 vim 中突出显示未提交的代码