2016-04-25 3 views
1

私は現在、いくつかのパッケージのショートカットを変更しようとしています。しかし、ショートカットの説明がC-h bであれば、プレフィックスコマンドにバインドされたキーは、それにnilを割り当てても、define-keyで残っています。emacsでプレフィックスコマンドのバインドを解除するには?

具体的には、私はアンドゥツリーのパッケージの私のショートカットを変更し、私はinit.elに

(define-key undo-tree-map (kbd "C-x r") nil) 
(define-key undo-tree-map (kbd "C-x r u") nil) 
(define-key undo-tree-map (kbd "C-x r U") nil) 

を入れた場合でも、説明を結合することは、まだC-x rはまだ「プレフィックスコマンド」にバインドされていると言います。

バインディングリストからこのキーを削除するにはどうすればよいですか?

+0

)「プレフィックスコマンド」として記載されていると、深刻な問題になります。だから、あなたは残りの拘束力のいくつかの他の効果も見ていると思うし、他の効果は本当にあなたを悩ますものです。他の効果を指定してください。 – Stefan

+0

@Stefan私はバインディングの記述からそれを削除したいだけで、他の効果は期待していませんでした。もちろん、毎日の使用には何の影響もありませんが、ヘルプバッファを開いたときには気になってしまいました。 – Yang

答えて

0

(global-set-key (kbd "C-x r") nil)

C-x rデフォルトでは、グローバルマップでプレフィックスキーです。

+0

ああ、私はそれを知らなかった。しかし、emacsがバッファリングを助けるのはなぜそれがアンドゥ・ツリー・バインディングであるといっていますか? – Yang

+0

'C-h b'もグローバルバインディングを反映します。もしあなたが特定のキーマップに何が入っているのかを知りたいなら、['help-fns + .el'](http://www.emacswiki.org/emacs/download/help-fns%2b.el)をロードし、' Ch Mk 'キーマップ変数のあとに続けます。 – Drew

+0

私はhelp-fns +を試しましたが、 'C-x r'はアンドゥツリーマップにあります。そして、私は 'C-h b'のundo-treeセクションを表示していると思います。 – Yang

0

ドリューの答えはおそらく正しいかもしれませんが、場合によっては、使用するキーマップがわからないか、バインディングを保持するキーマップを変更したくない(またはできない)ことがあります。その場合、優先度の高いキーマップで優先度を上書きすることができます(例:

+0

私はinit.elにこの行を追加しましたが、説明リストから "Command Prefix"を削除しましたが、C-x rに関する他のモードのバインドを上書きします。他のモードを妨害することなくこれを行う他の方法はありますか? – Yang

関連する問題