Emacs에서 실행 취소 정보를 잃지 않고 16진수 버퍼를 편집/볼 수 있는 방법이 있습니까?

Emacs에서 실행 취소 정보를 잃지 않고 16진수 버퍼를 편집/볼 수 있는 방법이 있습니까?

내가 사용할 때16진수 모드Emacs에서는 버퍼의 실행 취소 정보를 버립니다.
버퍼를 16진수 편집하고 실행 취소 정보를 보존하는 다른 방법이 있습니까?

대체 hex 편집기가 없다면 버퍼를 볼 수 있는 hex 뷰어가 있습니까? 나는 열심히 노력했다16진수 보기 모드, 그러나 실제 버퍼를 보지는 않습니다.파일(디스크에서)이므로 현재 수정사항을 볼 수 없습니다.

답변1

다음은 현재 버퍼의 내용을 새 버퍼에 복사하고 16진수 모드를 실행하는 함수입니다.

(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 모드가 있습니다.

관련 정보