EmacsとVimのキーバインドまとめ

emacs_vim

最近ターミナルを使うことがよくあり、キーバインドがEmacsであることが多いので覚える必要性を強く感じています。はたまた、サーバーの中にはエディタがVimかlessしか入っておらず、Vimを使う機会も増えてきました。
どちらが良いかという宗教戦争には関わるつもりはありませんが、使う以上どちらも覚えておかないといけないのでよく使うキーバインドをまとめることにしました。

エディタ戦争 – Wikipedia

.emacs.dとか.vimrcでキーバインドの変更はしないという想定でいきます。(サーバーとかは自分の環境じゃないことが多いですし・・・)
Vim特有のVisualモードとかの説明は長くなりすぎるので今回はしないことにします。同様にEmacsについても然りです。

Controlキーを^で表すことにします。メタキーはMで表します。
メタキーはWindows, Linuxならaltキーで、Macなら標準ではEscキーです。 Escキーのままでは使いにくいのでOptionキーをメタキーとして登録しておきましょう。
参考: Mac OS X のターミナルで meta キーを使う方法 – nanapi

移動

カーソルの移動系のキーバインドです。

挙動 Emacs Vim
右に移動 ^f l
左に移動 ^b k
上へ移動 ^p ;
下へ移動 ^n j
行の先頭に移動 ^a |
行の末尾に移動 ^e $
次の単語へ移動 M-f w
前の単語へ移動 M-b b
一画面下へスクロール ^v ^f
一画面上へスクロール M-v ^b
半画面下へスクロール ^d
半画面上へスクロール ^u
ファイルの先頭へ移動 M-< gg
ファイルの末尾へ移動 M-> G

覚え方

上下移動はEmacsは多分forward, backward, previous, nextですね。Vimは右手の基本ポジションのキーとなっています。

検索

挙動 Emacs Vim
検索 ^s or ^r /
次の候補へ移動 ^s n
前の候補へ移動 ^r N

注意

Vimの場合は検索する文字列を入力した後、Enterで確定した後候補の移動が出来るようになる。

削除

挙動 Emacs Vim
カーソル上の文字を削除 ^d x
カーソルの前の文字を削除 ^h X
カーソル位置から行末までを削除 ^k D
カーソル位置の行を削除 ^a ^k dd
カーソル位置の単語を削除 M-d

編集

挙動 Emacs Vim
コピー M-w y
カット ^w
ペースト ^y p
アンドゥ ^_ u
リドゥ ^g ^_ ^r

参考にしたサイト

■vim – これだけあればOKの操作(キーバインドは変更しない事、プラグイン不要) – omoisanのmemo
Emacsのキーバインド覚書
Vim
redo in Emacs – u-ch