当我使用十六进制模式在 emacs 中,它会丢弃缓冲区的撤消信息。
是否有另一种方法可以对缓冲区进行十六进制编辑并保留撤消信息?
如果没有替代的十六进制编辑器,是否有可以查看缓冲区的十六进制查看器?我努力了十六进制视图模式,但它不会查看实际的缓冲区;它查看缓冲区的文件(来自磁盘),所以我看不到当前的编辑。
答案1
这是一个将当前缓冲区的内容复制到新缓冲区并在其上运行 hexl-mode 的函数:
(defun hexify-buffer-copy()
"Edit current buffer in hexl mode by copying it"
(let ((orig-buffer (current-buffer)))
(switch-to-buffer (create-file-buffer
(buffer-file-name orig-buffer)))
(insert-buffer orig-buffer)
(setq buffer-undo-list nil)
(hexl-mode)))
运行与M-: (hexify-buffer-copy)
答案2
ELPA 中有 nhexl 模式,它使用覆盖而不是重写缓冲区,从而保留撤消信息。