11

pareditM-<up>はと をバインドしますが、 windmoveM-<down>にこれらのキーバインドを所有してもらいたいです。特定のモードでのみアクティブになるように paredit-mode を設定しましたが、windmove はグローバルに実行するように設定されています。windmove に勝ってもらいたいのですが、paredit はロード時にそれらのキーバインドを盗みます。

paredit が wi​​ndmove のキーバインディングを踏みにじるのを簡単に止めるにはどうすればよいですか? キーバインディングを設定する行を調べてコメントアウトしてきparedit.elましたが、これは理想とはほど遠いものです (paredit を更新するたびにこれを行うことを忘れないでください)。

より一般的には、特定のキーバインドが変更されないように「保護」しながら、elisp ファイルをロードできますか?

4

2 に答える 2

13

eval-after-loadコメントで説明されているように、ロード後にpareditの動作を構成するために使用できます。

;;; Customize paredit using `eval-after-load':
;;;
;;;   (eval-after-load 'paredit
;;;     '(progn ...redefine keys, &c....))

たとえば、次のようになります。

(eval-after-load 'paredit
  '(progn
     (define-key paredit-mode-map (kbd "<M-up>") nil)
     (define-key paredit-mode-map (kbd "<M-down>") nil)))
于 2008-11-18T13:14:44.007 に答える
1

この質問は以前に回答されています:Emacsのキーバインディングをグローバルにオーバーライドする

好みのキーバインディングを使用して独自のマイナーモードを作成し、それをグローバルに有効にして、他のすべてのキーバインディングをオーバーライドします。

于 2009-09-13T18:18:24.610 に答える