C- [gerçek için (bu sefer gerçekten ciddi) nasıl bağlanır


11

Bir C-[şeye bağlanmanın ve tüm M-(Meta) bağların bozulmamasının bir yolu var mı ?

Değil ilk kez bu sorunu gündeme geliyor. Ne yazık ki, önceki iş parçacığında sunulan tek çözüm a) Linux'a özgüdür, b) Emacs ile ilgisi olmayan harici bir araç (yine Linux'a özgü) gerektirir. Aynı şekilde , Emacs bunu almadan önce diziyi çalmak için OS X'te Karabiner gibi bir şey kullanabilirdim, C-[ancak bu tıknaz ve pahalı.

O tercüme ısrar Emacs olduğunu düşünürsek C-[için ESC, C-iiçin TABve muhtemelen diğerleri ben çok isterim bu ilişkileri kırmak ve geri değerli anahtar dizilerini almak gibi. Son zamanlarda bu sorun haline tam hız koştu ve suçladı sessiz masum smartparens modu.

İşin içinde olduğu Muhtemel bir çözüm function-key-mapve key-translation-mapedildi Burada tartışılan (ya da ben bir şey yanlış yapıyorum) ama ne yazık ki o da artık işleri ya da ilk etapta değil çalışma yaptı. Sanırım doğru yönde gidiyordu.


3
Emacs "çeviri ısrar etmez C-[etmek ESC". İkisi aynı şey . Aynı şekilde C-ive aynı ASCII kontrol kodu TABiçin farklı adlardır .
Drew

2
Kontrol ile tuş kombinasyonları bu en ufak açıktır @Drew gerekir bir GUI uygulaması (bunlardan sadece 32 vardır) ASCII kontrol kodları eşlenir. (Veya, heck, hatta xterm'de, birçok durumda benzersiz kaçış dizileri göndermek için bir changeOtherKeys moduna sahip, özellikle de bunlardan emin değilim)
Random832

3
Random832 @: Sen ayırt etmek doğru tuşlara gelen karakterler . Bir düzenleyicinin anahtar diziyi C-[ (bas Ctrlve vur [) C-[kontrol karakterine (yani ESCkarakter olarak) eşlemesi biraz mantıklı ve açıktır , ancak hayır, bu bir düzenleyici tasarlayan biri için zorunlu değildir. Ve evet, Emacs bunu yapıyor. C-[ve ESCaynı karakter vardır, ama tuşları Ctrl+ [ve Escihtiyaç değil herhangi bir özel karakterlere eşleştirilir.
Drew

Yanıtlar:


8

Kendi yapılandırmamdan uyarlandı :

(define-key input-decode-map [?\C-\[] (kbd "<C-[>"))
(global-set-key (kbd "<C-[>") 'butterfly)

Bu sadece GUI'de çalışacaktır.

edit: input-decode-mapTerminal-local olduğuna dikkat edin; bu , modifikasyonu değiştirdiğinizde işe yaramayacağını emacsclient, ancak kullanıyorsanız bunu yapacağını unutmayın emacs. Konfigürasyonumdaki sorunu, bir çerçevede çalışan bir komutta sararak ve after-make-frame-functionskancaya ekleyerek çözdüm .


teşekkür ederim bu yasal görünüyor! Acaba Emacs'ın Meta ve ESC'ye aynı şekilde davranmasını önlemenin bir yolu var mı? Ayrıca, sadece bazı Emacs terminolojisini karıştırıp düz bir şekilde düşünmediğimi merak ediyorum
zeRusski

1
Bu farklı bir soru, lütfen bunun için yeni bir soru açın.
wasamasa

ilginç olan <C-i>ve <C-[>yapışmış sırt TABve ESCsize yapılandırma düz out önermek gibi küresel haritadaki benim Emacs ben onları vurmak her zaman çöker:
zeRusski

1
Eh, dikkate sen devrettiği adam olmak gerçekleştiğini mektup "j" girişi üzerine dümen çökmesini için bir hata , ben crashy olmak için Emacs yapı suçlamak ve OS X için farklı bir denemenizi öneririm
wasamasa

İnanın bana birçok yapı denedim. Birlikte yaşamak zorunda kalacağım başka bir gizem olacak. Ben yöneteceğim -) çözüm için teşekkür ederim
zeRusski
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.