2012-11-20 4 views
5

私はキーをデフォルト以外のコマンドにマップしようとしましたが、望みの効果を得られませんでした。emacsでキーを再バインドしたときの意図しない振る舞い

(global-set-key (kbd "<left>") (message "Use C-f!")) 

ご覧のとおり、「Use C-f!」というメッセージが表示されます。左側の矢印キーが押されたときのエコー領域です。しかし、これは私が編集している現在のバッファにメッセージを出力します。

私には何が欠けていますか?

よろしく、

デビッド・リンド

答えて

3

あなたがコマンドにキーをバインドする必要があります。

(global-set-key (kbd "<left>") (lambda() (interactive) (message "Use C-f!"))) 
+0

はあなた先生ありがとう!キーは関数に束縛されなければなりませんか?それは私のバージョンとあなたのコマンドがラムダ関数として定義されているということだけが違うので、これを解釈する方法です。 – davidl

+0

関数だけでなく、対話的な関数です。 –

+0

しかし、なぜそれはラムダでなければならないのですか?私はちょうど今、同じことをhaskell-modeに入ったときにファイルをロードするようにしました。 '(add-hook 'haskell-mode-hook(lambda()(load-file"〜/ yada.el "))' ..ラムダ定義なしで試してみると、エラーが発生します。 '(add-hook 'haskell-mode-hook' load-file"〜/ yada.el ")'が失敗するためです。おそらく、これは別の投稿の対象ですか? :) – davidl

関連する問題