使用vim按十六进制代码搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vim按十六进制代码搜索相关的知识,希望对你有一定的参考价值。

我需要清理一个文件。我们有一个在其上运行的xml解析器,由于文件中的转义字符(0x1B)而失败。如何使用vim查找文件中该字符的位置,以便将其删除?

示例文件:

<?php
echo "Hello, world.
";                           
?>

转换后:

0000000: 0a3c 3f70 6870 0a65 6368 6f20 2248 656c  .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f  lo, world.
";.?
0000020: 3e0a  

所以我删除了一个char :(在这个例子中,'H')

0000000: 0a3c 3f70 6870 0a65 6368 6f20 22 656c  .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f  lo, world.
";.?
0000020: 3e0a

注意第一行不再宽了。当我将其转换回来时,我得到:

^@<?php
echo "el^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@> 
答案

搜索(例如使用/)\%x1b

您还可以通过在Ctrl-V前面输入控制字符(包括escape)到命令行中。所以输入/,Ctrl-V,Esc,Enter。

另一答案

通过执行[escape] :%!xxd将vim转换为十六进制编辑器。然后搜索0x1B(/1B)。

另一答案

您可以通过将光标放在其上并按ga来发现字符的十六进制值

下面你会看到角色的十六进制值。 <╬>字符的示例

<╬> <| N> 206,Hex ce,Oct 316,Digr I>

删除它:

%s/\%xce//g 

以上是关于使用vim按十六进制代码搜索的主要内容,如果未能解决你的问题,请参考以下文章

latex在vim中的代码片段

从零开始配置vim(27)——代码片段

vim代码片段插件ultisnips的使用

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

scrapy按顺序启动多个爬虫代码片段(python3)