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

时间:2010-02-15 14:00:34

标签: search vim hex

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

示例文件:

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

转换后:

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

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

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

3 个答案:

答案 0 :(得分:52)

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

您还可以通过在 Ctrl - V 之前键入控制字符(包括转义)到命令行中。所以输入 / Ctrl-V Esc 输入

答案 1 :(得分:11)

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

答案 2 :(得分:1)

您可以通过将光标放在字符上并按blog_page.html

来发现字符的十六进制值。

在下面,您将看到字符的十六进制值。 <a href="{% slugurl 'tags' %}?tag={{ tag }}"><button type="button">{{ tag }}</button></a> 字符

的示例
  

<╬> <| N> 206,十六进制,316年10月,Digr I>

通过以下方式删除它:

Error picture