先日「Emacs初心者だがオススメ設定を晒させてくれ」という記事をかいたが,その後も色々周りの人にオススメのショートカットなどを教えてもらっていた.
そんな中,調子に乗りまくって色々キーバインド変えて遊んでいたら本当に大変な目にあった話を書く.
Enterキーが効かない
本当に大変だった...
なんせEnterキーが効かなかったら決定も改行もなにもできず,Find ~/.emacs.d/init.el
とミニバッファに表示してからもファイルが開けず(RETコマンドが打てないので)手の打ちようがない.
頑張ってterminalのopen
コマンドでemacsを開いても,なぜかEnterキーを打つたびにミニバッファにはMinibuffer is inactive
の文字列.
改行は未だにできない
原因調査
仕事にならないからこんな夜中でも気合で対処するしかない.
とりあえず原因調査にかかった.StackOverflowやら色々なサイトを「emacs enter disabled」「emacs return minibuffer is inactive」などなど検索ワードを変えて検索したがいまいち.
八方塞がりだったが,ググるうちにemacsのキーバインド一覧を見ることの出来るコマンドM-x descrive-bindings
を発見する.その中に
<return> windmove-down
と表示されていた....
あれ,原因これじゃね?
対応
Enterキーがwindmove-down
にバインドされているのはわかったので,早速自分のinit.el
を確認.
(global-set-key (kbd "C-m") 'windmove-down)
あれ,普通じゃね?
しかし,色々探してるうちにちらっと見たサイトに,
Keys to Avoidの文字.
あれ?なんかそれっぽくね?と思ったのでちょっと読んでみると,
【Ctrl+m】 or Enter ↵ (These are tied together.)
な,なんだってーーーー!!!
つまり,Ctrl+m
とreturn
は同じ扱いということらしい.
とりあえずコメントアウトしてeval
;; (global-set-key (kbd "C-m") 'windmove-down)
ちゃんと治りました!!
まとめ
- キーバインドを変更する前には
M-x descrive-bindings
する - キーバインドはやたらめったら変更しない
- あせらない