我一直在修改多个十六进制编辑器,但没有任何效果。
我正在寻找一种以实际二进制(而不是十六进制)更改二进制的方法。这纯粹是为了教育目的,我知道两者之间的转换很简单,但我希望能够像更改十六进制一样更改 1 和 0。
我尝试过将 vim 与 %!xxd -b 一起使用,但它无法与 %!xxd -r 一起使用。我知道如何将文件转换为二进制文件,但我正在寻找一种方法以这种格式动态更改它并能够保存它。
如果我能找到一种通过纯粹在实际二进制文件中编码来实际创建二进制文件的方法,那就更好了。
任何帮助将不胜感激:D
最佳答案
vim
或 gvim
应该可以直接为您工作,无需 xxd
过滤器。
在 (g)vim 中打开文件。将光标放在字符上并输入 ga
以在状态行中查看其字符代码。要插入字符 NNN,请将光标放在所需位置,进入插入模式并键入 Ctrl-v
,然后输入三位十进制代码值。使用 Ctrl-v x HH
按十六进制代码输入字符。
确保您的终端未设置为使用 UTF8,因为在 UTF8 中,输入 Ctrl-v 128
实际上会插入 c280
,即字符的 utf-8 编码128,而不是 80
。
LC_ALL=C vim binary-file
这是确保您在 vim 中进行基于二进制字符的编辑的最简单方法,但如果您的终端是 utf-8,这可能会产生奇怪的结果。
LC_ALL=C gvim binary-file
应该打开一个具有正确显示的独立窗口。
仅供引用,如果您确实想使用 utf-8,Ctrl-v u HHHH
是如何使用十六进制代码点 HHHH 输入 Unicode 字符。
关于vim - 二进制编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53477582/