O modo Hexl não permite excluir caracteres. Esta resposta do estouro de pilha sugere uma solução: sobrescreva os caracteres que você deseja excluir com outro caractere (digamos "X"), mude para o modo hexl, encontre os caracteres e apague-os.
Eu tenho um arquivo binário razoavelmente grande (algumas dezenas de MB) e gostaria de remover alguns KB em algum lugar no meio, eles são dados intercalados, não o começo nem o fim.
Idealmente, eu gostaria de usar o emacs e o modo hexl parece um candidato provável.
É possível excluir uma linha do buffer hexl? Ctrl - k não parece fazer o trabalho. Estou feliz em olhar para o código, mas por qualquer motivo procurando por hexl-mode.el tudo o que eu encontro é o arquivo .elc compilado em minha máquina Ubuntu 10.04 Emacs 23.1.
Além disso: em uma jogada furtiva, eu gostaria de adicionar outra pergunta no modo hexl que não esteja diretamente relacionada à pergunta como está no título, mas que faz parte do problema completo que estou enfrentando: Seria muito útil para mim se eu pudesse mostrar X caracteres hexadecimais por linha onde X obviamente muda com o formato do arquivo binário que estou editando, eu não consegui encontrar uma maneira de fazer isso com o modo hexl e pensei jogue a questão aqui.
O modo Hexl não permite excluir caracteres. Esta resposta do estouro de pilha sugere uma solução: sobrescreva os caracteres que você deseja excluir com outro caractere (digamos "X"), mude para o modo hexl, encontre os caracteres e apague-os.
Use o nhexl-mode (que pode ser instalado como um pacote do ELPA). O modo nhexl é um modo menor; o texto permanece editável no modo principal em que o buffer já estava.
Por padrão, o modo nhexl ativa o modo de sobrescrição, mas você ainda pode excluir. Para inserir texto, desative o modo de substituição com M-x binary-overwrite-mode
.
Você pode colocar o seguinte trecho de código no seu arquivo init ( ~/.emacs
) para ligar a tecla Insert para alternar o modo de sobrescrever no modo 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)
Isso também pode ser interessante se você usar o modo nhexl.
Tags emacs hex-editor