Emacs 编辑二进制文件
二进制文件是以二进制格式存储的文件,它是计算机可读的,人类不直接阅读二进制文件。所有的可执行程序都以二进制文件存储。那我们该如何编辑二进制文件呢?在我使用的 Emacs 编辑器中提供了一个 hexl-mode 的主模式来编辑二进制文件。本文记录了 Emacs 中编辑二进制文件的基本操作。
打开
我们可以使用 M-x hexl-find-file
取代 C-x C-f
命令来编辑二进制文件,该命令将文件内容转换为十六进制,并允许用户进行编辑。当用户保存文件时,它将会自动转换为二进制格式。
当然,我们也可以使用 `M-x hexl-mode** 来将现有的缓冲区转换为十六进制,这在以普通方式打开二进制文件时非常有用。
编辑
普通文本字符在 hexl-mode 下被覆盖。这是为了降低意外破坏文件中数据对齐的风险。针对二进制文件,hexl-mode 有特殊的插入命令。以下是 hexl-mode 的命令列表:
- C-M-d 插入一个包含十进制代码的字节。
- C-M-o 插入一个包含八进制代码的字节。
- C-M-x 插入一个包含十六进制代码的字节。
- C-M-[ 移动到 1k 字节页面的开头。
- C-M-] 移动到 1k 字节页面的结尾。
- M-g 移至以十六进制指定的地址。
- M-j 移至以十进制指定的地址。
- C-c C-c 退出 hexl-mode,返回调用 hexl-mode 之前返回此缓冲区的主模式。
参考
[1] https://www.webopedia.com/TERM/B/binary_file.html
[2] https://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Binary-Files.html