我寫了一個奇特的函數,我想綁定到TAB。該功能僅在任何非只讀文本緩衝區中有意義。目前,我綁定,要麼像:Emacs:如何僅在常規緩衝區中綁定密鑰而不在minibuffer中?
(global-set-key (kbd "<tab>") 'my-indent-region)
或
(define-key global-map (kbd "<tab>") 'my-indent-region)
與此結合的問題是,現在標籤完成並在迷你緩衝區中,這是一個重要的功能不再工作(如對於緩衝區/文件名稱,或M-x
)。
是否可以綁定TAB只適用於普通模式?我知道我可以使用define-key some-major-mode-map
,但是因爲我希望它在所有模式(除了小型緩衝區的之外),所以這會很煩人。因此,我可能在尋找類似define-key any-mode-except-minibuffer ...
的東西。
如果這樣的功能不存在:是否有解決方法來讓tab-completion在minibuffer中再次工作?也許我可以在更改全局綁定後重新設置原始的minibuffer選項卡綁定?我無法弄清楚,實際上我必須綁定哪個函數才能使其工作。
嗯,也許我的問題還不夠清楚。我確實知道「導致問題」的原因:我新的全局選項卡綁定了花哨的my-indent-region函數。如果我刪除它,那麼「問題」就消失了,但我希望的結合也是如此。澄清:我的目標是將TAB綁定到'my-indent-function'_except_,用於在我輸入minibuffer時。你的段落「你可以做的另一件事......」可能是我正在尋找的東西,但我不知道我必須如何綁定才能獲得默認行爲。 – bluenote10 2015-04-06 18:01:18
看我的編輯。你的問題很清楚。也許我的回答不夠清楚? ;-) – Drew 2015-04-06 18:32:49