2013-10-11 22 views
5

:Emacs Ciltten Çıkar Bir Mode en keybinding şöyle ben makro bağlayıcı özel anahtar oluşturduk

(global-set-key (kbd "C-C C-c") "\C-a\C- \C-n\M-w\C-y")

sorun C-c C-cpython-mode yılında python-send-buffer için tanımlanan olmasıdır. Yani makrom python modu dışındaki tüm modlar için çalışıyor. Init dosyamdan sonra python-mode'un değerlendirildiğini farz ediyorum, bu yüzden tuş vuruşu üzerine yazıyor.

C-c C-c'u (eval-after-load "python-mode") kullanarak ve global-unset-key kullanarak denedim ancak bu çalışmaz. Python'da C-c C-c her zaman python-send-buffer ile eşleşiyor.

Python'un C-c C-c'u tamamen nasıl devre dışı bırakabilirim ve bunun yerine makroyu kullanabilir miyim?

Emacs 24.2.1 kullanıyorum.

+0

Cı-C, C-C modları bir çok tanımlanır. Belki de http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs – scottfrazer

+1

'u düşünmelisiniz ya da sadece farklı bir anahtar kullanmayı düşünmelisiniz. 'Cc' bir kontrol tuşu (" Cc "gibi)" büyük modlar için ayrılmıştır ", yani büyük bir modu tanımlayan Lisp kodunun onu kullanma hakkına sahip olduğu anlamına gelir (ve çoğunlukla" Cc Cc "yi ScottFrazer olarak kullanırlar) dedim). Kullanıcılar hala böyle bir anahtarı bağlama hakkına sahiptir, ancak sadece büyük modların da bunu yapmaktan çekinmeyeceğini biliyorsunuz, bu nedenle bu modlar için kullanmak üzere bir yedek anahtar bulmanız gerekebilir (buradaki cevaplara bakın). . Elisp elkitabı, 'Key Binding Conventions' düğümü. – Drew

+0

@Drew Çok sık kullandığım bu kopyalama ve yapıştırma işlemini yapmak için ücretsiz ve kolay erişilebilen bir C-x bağlaması bulamıyorum. – darksky

cevap

7
(add-hook 'python-mode-hook 
      (lambda() 
      (local-unset-key (kbd "C-c C-c")))) 
1

Bu bunu yapmak gerekir:

(add-hook 'python-mode-hook 
      (lambda() 
      (define-key python-mode-map (kbd "C-c C-c") nil)))