kenkovlog

Haskell, Python, Vim, ...

EmacsのSKKの設定

昨日からEmacsSKKを使い始めました。
キーバインドで悩んだところがあったのでそのメモ

read-onlyのバッファでskkモードをONにしているとき、C-pで上に移動出来ませんでした。
-bでキーバインドを調べてみると、
C-p skk-previous-candidate
となっていました。どうやら、skkモードにすることで、マイナーモードのキーバインドになっていたようです。

-bの情報からskk.elあたりで設定されているということがわかったので、
/usr/share/emacs/site-list/skk/
の下にあるファイルにキーバインドの設定ファイルがあると思われるので、
そのあたりのファイルを探して、キーバインド
skk-vars.el
に書かれていることがわかりました。

skk-vars.elを

;; 次の行をコメントアウトして
;; (list "x" "\C-p")を(list "x")にする
;; (defcustom skk-previous-candidate-keys (list "x" "\C-p")
(defcustom skk-previous-candidate-keys (list "x")
  "*`skk-previous-candidate' を割当てるキー。
この変数にはキーを表すオブジェクトのリストを指定する。
オブジェクトとしては、キーを表す文字列または event vector が指定できる。"
  :type (if (get 'key-sequence 'widget-type)
	    '(repeat (key-sequence :tag "キー (C-q key で取得可)"))
	  '(repeat sexp))
  :group 'skk-henkan)

と修正しました。

そして、再起動...

うまくいきません。
ここで、ひとつつまづいたのが、バイトコンパイル。
skk-vars.elはすでにバイトコンパイルされているのでM-x byte-compile-fileでバイトコンパイルし直してから、Emacsを再起動することで、
C-p previout-line
となり、キーバインドの修正が出来ました。