0

私は Mac に切り替え、お気に入りの R エディター (メモ帳++) を捨てなければなりませんでした。今、Emacsを勉強しようとしています。学習曲線は急ですが、使い方を学ぶと、これは Rのエディターのように思えます。OS X 10.8.3 と Aquamacs 2.4 を使用しています

これらのSOの質問からの優れたヒントに従って、カスタムキーバインディングを設定しようとしています: 123

このコマンドを Preferences.el ファイルにコピーすると、Aquamacs が問題なく開き、コマンドが機能します。

(global-set-key [C-tab] 'other-window)

ただし、次のオプションのいずれかを設定しようとすると:

(define-key ess-mode-map (kbd "C .") 'ess-eval-paragraph)
(define-key ess-mode-map [C-.] 'ess-eval-paragraph)
(define-key ess-mode-map "\C-." 'ess-eval-paragraph)

Aquamacs が開いて文句を言いますが、コマンドは機能します。

「~/Library/Preferences/Aquamacs Emacs/Preferences.el (または .elc)」の読み込み中にエラーが発生しました:

変数としてのシンボルの値が無効です: ess-mode-map

正常な動作を確保するには、初期化ファイルでエラーの原因を調査して削除する必要があります。完全なエラー バックトレースを表示するには、「--debug-init」オプションを指定して Emacs を起動します。

Ctrl + を使用したい。Rコード/バッファの段落をRに実行します。明らかに、私は何か間違ったことをしています。私は Mac と Emacs のまったくの初心者なので、これには圧倒されます。何が起こっていて、どうすればこの問題を解決できますか?

4

1 に答える 1

3

ess-mode-map存在する前に変更することはできません。ess (特に ess-mode) がロードされるまで存在しません。したがって、次のようなものが機能するはずです。

(eval-after-load "ess-mode"
  '(define-key ess-mode-map (kbd "C-.") 'ess-eval-paragraph))

編集: C-.ascii 文字セットにないため、"\C-."文字列は機能しないことに注意してください。(kbd "C-.")代わりにフォームを使用する必要があります。文字列は、他の組み合わせでも機能"\C-a"します (これを Ca にバインドする必要はありません)。詳しくはマニュアルをご覧ください。

于 2013-05-07T17:18:00.423 に答える