Peki ya Control lockanahtar?
Tam eşdeğeri için bir engel, Controlne zaman tutulduğunu ve ne zaman serbest bırakıldığını bilmesi gerektiğidir. Emacs klavye olayları (fare olaylarından farklı olarak) 'aşağı' ve 'yukarı' parçalara bölünmez, bu da 'serbest bırakılmasını' orada algılamamızı zorlaştırır. Örneğin, arasındaki tek fark C-x C-ove C-x oikinci karakter before kontrol makyaj 'olaydır. Ancak, bu yalnızca bir anahtar dizilişinde 'bırakmaya' izin verirseniz sorun olur
Buradaki yöntem, Control lockEmacs içindeki tüm anahtarları bağlamanızı sağlar . Ayrıca, Controlanahtarı yarı yolda bırakan anahtar dizileri için bazı kolay çalışmalar da ekledim .
Aşağıdaki kod size, bir bütün anahtar dizilimi için değiştiriciyi tutan bir 'Kontrol Kilidi' bağlaması verir. Aşağıdaki örnek buna bağlanır ö, ancak istediğiniz herhangi bir şeye bağlayabilirsiniz.
(defun read-control-sequence (prompt)
(let (keys)
(setq extra-keyboard-modifiers ?\C-a)
(setq keys (read-key-sequence-vector (or prompt "[Control lock]")))
(setq extra-keyboard-modifiers 0)
keys))
(define-key key-translation-map [?ö] 'read-control-sequence)
Bunu kullanmak için, basitçe basın (ve bırakın) ö. Bir sonraki tuşa controlbasılmış gibi davranır . Girdiğiniz anahtar bir önek tuşuysa (örneğin xalmak için bastığınızda C-x) control, bir sonraki tuş için basılı tutup, önek olmayan bir tuşa basana kadar devam eder.
Bunu çok kullanırsanız, .emacs
ortak bir komut için “ controlyoldan gitmesine izin vermeyen” ortak komutlar eklemek de isteyebilirsiniz . Örneğin, bu:
(global-set-key (kbd "C-x C-4")
(lookup-key (current-global-map)
(kbd "C-x 4")))
yazmaya başlayan tüm komutları C-x 4da kullanılabilir kılar C-x C-4, böylece yazma ö x 4 fçalışacaktır find-file-other-window
.
Ayrıca, Öyalnızca bir bağımsızlık sağlamak için bir eşleme (örneğin sermayeye ) eklemeyi faydalı bulabilirsiniz C-x:
(define-key key-translation-map [?Ö] [(control ?x)])
Yukarıdaki kodların tümü (her zamanki gibi) .emacs
dosyanızı ekleyerek ve Emacs'ı yeniden başlatarak veya C-x C-eher üst düzey ifadeden sonra yazarak yüklenebilir . Bu yaklaşımın, Emacs'ın geri kalanıyla az ya da çok kesintisiz bir şekilde bütünleştiğini bulmalısınız.