我有一个相当大的二进制文件(几十 MB),并且想在中间的某个地方删除几 KB,它夹在中间的数据不是开头也不是结尾。
理想情况下,我想使用 emacs,而 hexl-mode 似乎是一个可能的候选者。
是否可以从十六进制缓冲区中删除一行?Ctrl-k似乎没有完成这项工作。我很高兴查看代码,但无论出于何种原因寻找 hexl-mode.el 我发现的只是我的 Ubuntu 10.04 机器 Emacs 23.1 上已编译的 .elc 文件。
另外:偷偷摸摸地,我想添加另一个与标题中的问题没有直接关系的十六进制模式问题,但它是我面临的完整问题的一部分:如果我可以每行显示 X 个十六进制字符,其中 X 显然会随着我正在编辑的二进制文件的格式而改变,我找不到用十六进制模式来做到这一点的方法,我想我会在这里抛出这个问题。
使用nhexl-mode(可以从 ELPA 作为包安装)。Nhexl-mode 是次要模式;文本在缓冲区已经处于的主要模式下保持可编辑状态。
默认情况下,nhexl-mode 激活覆盖模式,但您仍然可以删除。要插入文本,请使用 关闭覆盖模式M-x binary-overwrite-mode
。
您可以将以下代码片段放在 init 文件 ( ~/.emacs
) 中,以将Insert密钥绑定到 nhexl 模式中的切换覆盖模式。
(unless (boundp 'nhexl-mode-map)
(defvar nhexl-mode-map (make-sparse-keymap)
"Keymap used when `nhexl-mode' is active."))
(define-key nhexl-mode-map [insert] 'binary-overwrite-mode)
Run Code Online (Sandbox Code Playgroud)
如果您使用 nhexl-mode,这也可能很有趣。
归档时间: |
|
查看次数: |
6556 次 |
最近记录: |