2011-09-25 88 views
20

我做了一個ctrlhb查看所有我在emacs中的綁定。現在我想解鎖一個批號的鍵,只是因爲我從來不使用Emacs的這些功能,而且當我不小心按下了綁定鍵時,我不想執行它們!這也爲其他任務釋放了很多密鑰(例如與Cedet一起使用)。因此,除了全局密鑰外,是否有任何方法可以批量刪除綁定?有沒有一種快速解鎖Emacs中的鍵的方法?

 
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 

我想刪除大多數綁定這對我來說是絕對沒用的。

+0

如果您想爲yank使用'Cv'的標準鍵盤綁定,'kill-region'等使用'Cx',請查看'cua-mode',這可以實現此目的,同時保留Emacs的功能。 – haxney

+2

請記住這些實際上是綁定的** ** **,尤其是使用emacs [Named-ASCII-Chars](http://www.gnu.org/software/emacs/manual/html_node/emacs/Named-ASCII -Chars.html#命名的ASCII字符數)。 **禁用'ESC'('「\ e」')將基於元鍵**禁用幾乎所有的內容(至少在這裏)。另外'C-c'和'C-x'是分支到許多命令的頭等前綴。 –

回答

33

有取消設置許多鍵沒有內置的方式,因爲它很容易做到這一點吧:

(編輯嚴格的正確性:)

(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)) 

雖然我不得不說,最你稱之爲「無用」的命令我稱之爲「基本」。

(編輯補充:)

至於釋放鍵用於其他任務,有大量的廢棄鑰匙房地產:

  • 包括C-c鍵序列後面有一個字母被保留約定爲用戶。
  • 如果您有其他修飾符可用,例如Mac上的Option或PC上的Windows鍵,則可以將其與Emacs修改器(如super)相關聯。例如,我有super-b綁定到browse-url-at-point
  • 如果你不是在一個普通的終端,換檔鍵可用於區分鍵序列。例如,我有shift-meta-b綁定到bury-buffer
  • 對於有用但不足以保證專用密鑰序列運行的命令,可以使用defalias來提供較短的名稱。在我的.emacs文件中,我有(defalias 'ru 'rename-uniquely)(defalias 'c 'calendar)(等等)。
+0

是的,但我使用'家''結束'和箭頭鍵等達到相同的效果。我很習慣這些,我發現很難適應其他一些導航鍵。另外我希望像這樣的鑰匙可用於我做更重要的任務。例如,我想撤消使用C-z,因爲我發現使用默認的「C-x C-u」事物進行多重撤銷非常困難。 – AnkurVj

+1

這適用於除C-z之外的所有密鑰,儘管它應該是「暫停緩衝區」,但它以某種方式最小化emacs。有什麼我在這裏失蹤? – AnkurVj

+0

嘿它一次工作,下一次停止工作..你能幫我調試嗎?我複製粘貼完全相同的東西,現在我無法讓它工作..它一直說「-Lisp錯誤:(錯誤類型參數整數或標記-P鍵)」! :(:( – AnkurVj

8

global-unset-keylocal-unset-key是有用的,但它是值得擁有的這個問題的答案是指出一般的方式來解除綁定鍵(任何鍵盤映射)是定義的nil綁定:

(define-key KEYMAP KEY nil) 

如果按照其中的任意一種其他功能的代碼,你會發現,這是他們做什麼。

+2

在emacs 24中,將默認密鑰設置爲零無效,並保留默認值。 – alinsoar

+0

「默認鍵」是什麼意思? – phils

+0

emacs默認值附帶的一個關鍵字,無需添加.emacs或更改init文件。例如,「M-)」默認爲「移動過去關閉並重新加入」。 – alinsoar

相關問題