2011-09-25 12 views
20

Ben emacs'taki tüm bağlamaları görüntülemek için bir ctrlh byaptı. Şimdi sadece bir Emacs işlevini kullanmam ve bunlara yanlışlıkla tuşlara bastığımda bunları yapmak istemediğim için bir lot anahtarını açmak istiyorum! Bu aynı zamanda diğer görevler için de bir çok anahtarı serbest bırakır (örneğin Cedet ile kullanmak için). Yani, global-unset-key dışında, bağlayıcıları toplu olarak kaldırmak için herhangi bir yöntem var mı?Emacs'de tuşları çözmenin hızlı bir yolu var mı?

 
C-a  move-beginning-of-line 
C-b  backward-char 
C-c  mode-specific-command-prefix 
C-d  delete-char 
C-e  move-end-of-line 
C-f  forward-char 
C-g  keyboard-quit 
C-h  help-command 
C-k  kill-line 
C-l  recenter-top-bottom 
C-n  next-line 
C-o  open-line 
C-p  previous-line 
C-q  quoted-insert 
C-t  transpose-chars 
C-u  universal-argument 
C-v  scroll-up 
C-x  Control-X-prefix 
C-z  suspend-frame 
ESC  ESC-prefix 

benim için kesinlikle yararsız bu bağlamaların en kaldırmak istiyorum. Ben en çok söylemek zorunda olsa

(sıkı doğruluğu :)

(dolist (key '("\C-a" "\C-b" "\C-c" "\C-d" "\C-e" "\C-f" "\C-g" 
       "\C-h" "\C-k" "\C-l" "\C-n" "\C-o" "\C-p" "\C-q" 
       "\C-t" "\C-u" "\C-v" "\C-x" "\C-z" "\e")) 
    (global-unset-key key)) 

için Düzenlendi: buna kendiniz yapmak kolaydır çünkü

+0

Eğer "yank", "kill-bölge" için "Cx" için "standart" anahtar sözcüklerini kullanmak isterseniz, bunun yerine, Emacs işlevini korurken bunu sağlayan "cua modu" seçeneğini işaretleyin. . – haxney

+2

Akılda tutulması gerekenler, özellikle de emacs [Named-ASCII-Chars] (http://www.gnu.org/software/emacs/manual/html_node/emacs/Named-ASCII -Chars.html # Adlandırılan ASCII-Karakter). ** 'ESC'yi (' \ e \ '') devre dışı bırakmak, meta anahtarına ** (neredeyse burada) dayalı olarak neredeyse her şeyi devre dışı bırakır. Ayrıca, C-c ve C-x, birçok komuta dallanan birinci sınıf öneklerdir. –

cevap

33

, anahtarların bir çok unset yerleşik bir yolu var "işe yaramaz" dediğiniz komutların "temel" dediğimi. C-c oluşan

  • Anahtar dizileri bir harf tarafından takip saklıdır Kongre tarafından gibidir:

    (eklemek için :)

    diğer görevler için anahtarlarını kurtararak gelince Düzenlendi kullanılmayan anahtar gayrimenkul bol kullanıcılar için.

  • Mac'te Option veya PC'deki Windows tuşu gibi ek bir değiştiriciniz varsa, onu super gibi bir Emacs değiştiricisiyle ilişkilendirebilirsiniz. Örneğin, browse-url-at-point'a bağlı super-b var.
  • Düz bir terminalde değilseniz, anahtar sıralarını ayırt etmek için shift tuşu kullanılabilir. Örneğin, bury-buffer'a bağlı shift-meta-b var.
  • Atanan bir tuş dizisine izin vermek için yararlı ancak sık sık çalıştırılmayan komutlar için, daha kısa bir ad sağlamak üzere defalias'u kullanabilirsiniz. Benim .emacs dosyasında, (defalias 'ru 'rename-uniquely) ve (defalias 'c 'calendar) (diğerleri arasında) var.
+0

evet, ama ben aynı etkiyi elde etmek için 'ev' 'end' ve ok tuşları vb kullanın. Bazı navigasyon tuşlarına uyum sağlamanın çok zor olduğunu bu şekilde çok kullanıyorum. Ayrıca, bu gibi anahtarların benim için daha önemli olan görevleri yapmak için bana sunulmasını istiyorum. Örneğin, bir C-z kullanarak geri almak istiyorum çünkü varsayılan C-x C-u 'özelliğini kullanarak çoklu geri alma işlemini yapmak çok zor. – AnkurVj

+1

Bu, C-z dışındaki tüm tuşlar için çalıştı ve bir şekilde "askıya alma tamponu" olması gerektiğinden emacları en aza indiriyor. Burada eksik olduğum bir şey var mı? – AnkurVj

+0

Hey, bir kez çalıştı ve bir dahaki sefere işe yaramazsa .. hata ayıklamama yardımcı olabilir misiniz? Kopyaladım aynı şeyi iki kere yapıştırdım ve şimdi çalışamıyorum .. Bu "-Lisp hatası: (yanlış-tür-argüman tamsayı-veya-işaret-p tuşu)" diyor! :(:( – AnkurVj

8

global-unset-key ve local-unset-key faydalıdır, ama bir nil bağlanmasının tanımlamak için genel yolu (için herhangi klavye düzeni) bir anahtar bağını kaldırmak için işaret bu soruya bir yanıt söz konusu olan değer:

(define-key KEYMAP KEY nil) 

Bu diğer işlevlerden birinin kodunu takip ederseniz, bunun tam olarak ne yaptığının farkındasınız.

+2

Emacs 24'te, nil'e bir varsayılan anahtarın ayarlanmasının bir etkisi yoktur ve varsayılan değeri korur. – alinsoar

+0

"Varsayılan anahtar" ile ne demek istiyorsun? – phils

+0

Bir .emac eklemeden veya init dosyasını değiştirmeden, emacs varsayılanlarıyla gelen bir anahtar. Örneğin, "M -)", "geçip geç ve kapat" işlevinin varsayılanıdır. – alinsoar

İlgili konular