Emacsで k が入力出来ないバグ
2012.7.23 追記
一番いいのはgithubのやつをダウンロードすることだと思う。最近のやつでは解消されてると思う。
GitHub - joaotavora/yasnippet: A template system for Emacs
2013.12.16 追記
今はM-x package-install yasnippetでインストールすればよさそう。<<<<追記ここまで
EmacsでEmacs Lispのファイルを開くと 半角"k"が入力できないバグが起きてしまった。どんな状態かというと、kを押すとミニバッファ内に 「k - 」となって何か次のキーを押してくださいの状態になる。Emacsの環境はVer23.2.1でanythingやらyasnippetやら色々使ってる状態。
init-loaderが読み込んでる設定ファイルディレクトリ、site-start.d内のファイルを調べた結果、yasnippetの設定をするときに k が入力出来ないバグが発生発生したみたいだった。yasnippetのバージョンは0.6.1cだった。
さてどうしたものかと考えた、バグの根本的な原因を探るのは骨が折れる。なので応急処置として k を入力するキーバインド定義しようということに。
(define-key emacs-lisp-mode-map (kbd "k")
'(lambda ()
(interactive)
(insert "k")))
これをyasnippetが読み込まれた後に読み込まれるようにする。
init-loaderを使っている場合、yasnippetの設定ファイルの名前が、 50_init-yasnippet という名前だったときに、 90_init-temporary-repairs.el とかいうファイルを作って、上のコードを貼り付けて保存すれば大丈夫。
yasnippetの前に上のコードを読み込ませた場合 例えば 90_init-temporary-repairs.el の数字を 40 にしてときこんなエラーが出た。
Key sequience k e y b i n d i n g starts with non-prefix key k
kがプレフィクスキーである前提で設定されようとしている?
ちなみにyasnippetの設定はこんな感じ。
(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c")
(require 'yasnippet)
(yas/initialize)
(yas/load-directory "~/.emacs.d/plugins/yasnippet-0.6.1c/snippets")
とにかくこれで k が入力できないという致命的な状況は抜け出せることに。一体どこが k が入力できない根本的な原因かが分かるにはかなり時間がいるかも…。だれか何か知ってる人はいないんやろうか。