在emacs中,有没有办法在不丢失撤消信息的情况下以十六进制编辑/查看缓冲区?

在emacs中,有没有办法在不丢失撤消信息的情况下以十六进制编辑/查看缓冲区?

当我使用十六进制模式在 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 模式,它使用覆盖而不是重写缓冲区,从而保留撤消信息。

相关内容