*目次 [#b05ace56] #contents *趣旨 [#pa3ce9af] viはサイズが小さいので、linuxにたいてい入っている。 エディタごとにキーバインドを覚えるのは面倒である。 emacsはカスタマイズが効くエディタである。 そこで、emacsのキーバインドをvi風にしておく。 *カーソル移動 [#p480b30c] **emacsのデフォルトのカーソル移動 [#oad06f12] 前の行,C-p : : 前の文字,C-b .... 現在のカーソル位置 .... 次の文字,C-f : : 次の行,C-n **viのデフォルトのカーソル移動 [#u46098bd] 前の行,C-k : : 前の文字,C-h .... 現在のカーソル位置 .... 次の文字,C-l : : 次の行,C-j **カーソル移動をCtrl-hjklに [#q73e8470] (global-set-key "\C-h" 'backward-char) (global-set-key "\C-j" 'next-line) (global-set-key "\C-k" 'previous-line) (global-set-key "\C-l" 'forward-char) (global-set-key "\C-n" 'newline-and-indent) (global-set-key "\C-o" 'kill-line) 確認のため、scratchでためしてみる。。。 一行ずついれるのは大変だ。 progn をつくって順番に処理させよう (progn (global-set-key "\C-h" 'backward-char) (global-set-key "\C-j" 'next-line) (global-set-key "\C-k" 'previous-line) (global-set-key "\C-l" 'forward-char) (global-set-key "\C-n" 'newline-and-indent) (global-set-key "\C-o" 'kill-line) ) で、確認する。するとctrl+jはlispの実行というか評価のショートカットキーじゃないですか。。。 lisp実行キーには効かなかったということは、キーの設定に優先順位があるということがわかった。 もともとあるキーバインドと衝突するのはいやだ、考え方を改めよう。 空気のようなキーバインドを言っている人がいたので、そのサイトのリンクを張っておきます。 http://emacs.g.hatena.ne.jp/k1LoW/?of=5 ***参考 [#v1d96264] 元Vimmerが考えるEmacsの再設計 http://dev.ariel-networks.com/wp/documents/aritcles/emacs/part16 *Evil [#a363d767] Emacsにvim風のキーにするlispファイルってすでに、あるんでしょ と思って調べてみたらありました。 **特徴 [#w8627943] Vimのようなモードによる操作を実現する **日本語の詳しい説明 [#p467fbeb] ***Evil: EmacsをVimのごとく使う - 導入編 [#hcd4efe2] http://d.hatena.ne.jp/tarao/20130303/evil_intro ***Evil: EmacsをVimのごとく使う - 設定編 [#h0edf4df] http://d.hatena.ne.jp/tarao/20130304/evil_config ***第3のエディタ Emacs Evil が手に馴染んだ9つの理由 [#h375c7e6] http://apribase.net/2013/06/24/emacs-evil/ **本家 [#abeafde3] http://www.emacswiki.org/emacs/Evil **物理行移動コマンド [#w4707f66] evil-next-visual-line evil-previous-visual-line