Onaltılık mod ile bir ikili dosyanın ortasından veri silin


13

Oldukça büyük bir ikili dosya (birkaç onlarca MB) var ve ortasında bir yerde birkaç KB kaldırmak istiyorum, bu başlangıç ​​veya bitiş değil sandviç veri.

İdeal olarak emacs kullanmak istiyorum ve hexl modu muhtemel bir aday gibi görünüyor.

Onaltılık tampondan bir satır silinebilir mi? Ctrl- kişi yapmıyor gibi görünüyor. Ben koda bakmak için mutluyum ama herhangi bir nedenle hexl-mode.el arıyor her şeyim benim Ubuntu 10.04 makine Emacs 23.1 derlenmiş .elc dosyadır.

Ayrıca: sinsi bir hareketle doğrudan başlıkta ifade olarak soru ile ilgili olmayan ama karşılaştığım tüm sorunun bir parçası olan başka bir hexl-mode soru eklemek istiyorum: Eğer benim için çok yararlı olacaktır X'in düzenlediğim ikili dosyanın biçimiyle açıkça değiştiği satır başına X onaltılık karakteri görüntüleyebilirim, hexl modu ile bunu yapmanın bir yolunu bulamadım ve soruyu buraya atacağımı düşündüm.

Yanıtlar:


9

Hexl modu karakterleri silmenize izin vermez. Yığın taşmasından gelen bu yanıt bir çözüm önermektedir: silmek istediğiniz karakterlerin üzerine başka bir karakterle ("X" deyin), onaltılı moddan çıkın, karakterleri bulun ve orada silin.


4

Nehexl modunu kullanın ( ELPA'dan paket olarak kurulabilir). Nhexl modu küçük bir moddur; metin arabelleğin bulunduğu ana modda düzenlenebilir olarak kalır.

Varsayılan olarak, nhexl modu üzerine yazma modunu etkinleştirir, ancak yine de silebilirsiniz. Metin eklemek için ile üzerine yazma modunu kapatın M-x binary-overwrite-mode.

Anahtarı nhexl modunda üzerine yazma moduna geçirmek için aşağıdaki kod snippet'ini init dosyanıza ( ~/.emacs) Insertkoyabilirsiniz.

(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)

Bu size nhexl-modunu kullanmak durumunda da ilgisini çekebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.