目次

趣旨

viはサイズが小さいので、linuxにたいてい入っている。

エディタごとにキーバインドを覚えるのは面倒である。

emacsはカスタマイズが効くエディタである。

そこで、emacsのキーバインドをvi風にしておく。

カーソル移動

emacsのデフォルトのカーソル移動

                              前の行,C-p
                                   :
                                   :
    前の文字,C-b   ....   現在のカーソル位置   ....   次の文字,C-f
                                   :
                                   :
                              次の行,C-n

viのデフォルトのカーソル移動

                              前の行,C-k
                                   :
                                   :
    前の文字,C-h   ....   現在のカーソル位置   ....   次の文字,C-l
                                   :
                                   :
                              次の行,C-j

カーソル移動をCtrl-hjklに

   (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

参考

元Vimmerが考えるEmacsの再設計

http://dev.ariel-networks.com/wp/documents/aritcles/emacs/part16

Evil

Emacsにvim風のキーにするlispファイルってすでに、あるんでしょ

と思って調べてみたらありました。

特徴

Vimのようなモードによる操作を実現する

日本語の詳しい説明

Evil: EmacsをVimのごとく使う - 導入編

http://d.hatena.ne.jp/tarao/20130303/evil_intro

Evil: EmacsをVimのごとく使う - 設定編

http://d.hatena.ne.jp/tarao/20130304/evil_config

第3のエディタ Emacs Evil が手に馴染んだ9つの理由

http://apribase.net/2013/06/24/emacs-evil/

本家

http://www.emacswiki.org/emacs/Evil

物理行移動コマンド

evil-next-visual-line

evil-previous-visual-line

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-25 (金) 09:30:50 (2915d)