Emacs

2011-09-26 23 views
7

'daki yazdırılamayan unicode karakterlerini vurgulama ve değiştirme Dosyadan kaldırmak istediğim SOL-TO-RIGHT OVERRIDE (U + 202D) gibi bazı Unicode karakterler içeren bir UTF-8 dosyası var. Emacs'de, bunlar varsayılan olarak gizli (hangisi doğru davranış olmalı?). Bu tür "egzotik" unicode karakterlerini nasıl görünür hale getirebilirim (Almanca umlanlar gibi "normal" unicode karakterlerinin görüntülerini değiştirmiyorken)? Ve sonra bunları nasıl değiştiririm (örneğin replace-string ile. C-X 8 Ret, isearch/replace-string için çalışmıyor).Emacs

Vim'de oldukça kolay: Bu karakterler, varsayılan olarak onaltılık gösterimleriyle görüntülenir (bu bir hata mı yoksa eksik özellik midir?) Ve örneğin bunları :%s/\%u202d//g ile kolayca kaldırabilirsiniz. Bu Emacs ile mümkün olmalıydı?

cevap

9

M-x find-file-literally yapabilirsin, sonra bu karakterleri göreceksin.

Sonra kullanarak bunları kaldırabilirsiniz zamanki

+1

"Geçiş etkinleştirme çok parçalı karakterler" olan karakterler için aynı sonuçları elde ediyorum, ancak sorun şu ki hepsini görmek istemiyorum, sadece "egzotik" olanlar. Yine de, onları nasıl değiştireceğimi bilmiyorum (bunları değiştir-dizine giremiyorum). – Christian

4

string-replace nasıl bu konuda:

M- yazarak size kill halka üstündeki eşleştirmek istediğiniz U + 202d karakterini koyun:(kill-new "\u202d"). Daha sonra bu dizgiyi, C-y (örn. query-replace) veya M-y (örn. isearch-forward) ile çeşitli arama komutlarına bağlayabilirsiniz.

(eklemek için :)

Ayrıca sadece sigara etkileşimli komutları diyebiliriz, interaktif çağrılar gibi aynı klavye giriş zorluklar ortaya etmeyen Düzenlendi. Örneğin, tip M-: Sonra ve:

(replace-string "\u202d" "") 

Bu Vim sürümüne biraz benzer. Bir fark, yalnızca imleç konumundan dosyanın (veya daraltılmış bölgenin) altına yapılan değiştirmeleri gerçekleştirmesidir, böylece tümünü değiştirmek için komutu çalıştırmadan önce dosyanın (veya daraltılmış bölgenin) üstüne gitmeniz gerekir. maçlar.

+1

Bu işler, teşekkür ederim. Ancak, özellikle buldukları karakterler (isearch veya replace) vurgulanmayacağından bu çok sakıncalı. Belki başka bir olasılık var .. – Christian