読者です 読者をやめる 読者になる 読者になる

VimとEmacsのカーソル移動

Emacs Vim

 

1 vimemacsのカーソル移動

 

1.1 前書き

基本的にyoshitiaが覚えている分で書いてるので 記事が間違ってるとわかったら各自で正しい操作方法を探しましょう。 くどいようですがvimのヘルプ使いましょう。 紹介順は入門vi(vimではない)に則っています。

1.2 操作の表記

C-fはCtrl+fの表記です。 emacsvimの記事では C-fのような表記が多いので慣れましょう。 M-fならAlt+fです。(macならMeta+f) C-M-fならCtrl+Alt+fになります。

1.3 上下左右移動

 

1.3.1 vim ノーマルモード h(左)、j(下)、k(上)、l(右)

キーボードのホームポジション、右手だけで行います。 vimはカーソル移動・テキスト編集を 極力ノーマルモードで行い、 テキスト入力時にインサートモードに切り替える、 という使い方が基本なので インサートモード時にカーソル移動したくなったら サクッとノーマルモードに戻ってからやるのが普通です。

1.3.2 emacs C-f(右)、C-b(左)、C-n(下)、C-p(右)

vimでもそうですが割とデフォルトのキーバインドは 操作を意味する単語の頭文字の英字キーだったりします。 (100%ではない) この操作の場合は以下の様になります。 C-f forward(入力方向に対して前へ) C-b backward(入力方向に対して後ろへ) C-n next(次の行へ) C-p previous(前の行へ) 操作を意味する英単語を覚えておくと 「C-fは右移動」と丸暗記よりは身につくのが早いと思います。

1.4 行末・行頭移動

一応vimemacsでなくてもhomeキーやendキーで出来たりします。 (windowsのメモ帳でもこれは使えます)

1.4.1 vim ノーマルモード 0(行頭)、$(行末)

0はその行の一番最初の文字を意味しています(0、1と数えてるっぽい) $は正規表現で行末を意味する$を使っています。

おまけ。^だとその行の一番最初にある 空白(半角スペースやタブ)以外の文字に移動します。 (全角スペースは文字として認識されます) ^は正規表現で行頭を表します。 vimの操作で正規表現2つ覚えられます。 やったね!ラッキーだね!

1.4.2 emacs C-a(行頭)、C-e(行末)

C-aなのは多分a=先頭のイメージなんでしょうねー。 C-eはend。

1.4.3 emacs M-a、M-e

動きとしてはC-a、C-eと似ていますが 空白(半角スペースやタブ)以外の 一番最初の文字か最後の文字に移動します。 連続して押すと前の行の一番最初の文字・次の行の一番最後の文字に 移動します。 emacsは英字キーが同じでCtrlかAlt(Meta)かの違いで 似てるような動きで微妙に違う操作が出来たりします。

1.5 単語単位の移動

単語単位の移動はタブや空白で区切られた単語やカンマ、ピリオドです。 vimemacsは元が日本語を想定したエディタではないので日本語の文章では いまいち上手く動かないです。 ただ、上下左右の移動よりは早くカーソルを移動できます。

1.5.1 vim w、W(右方向) b、B(左方向)

大文字はピリオドとカンマを飛ばして移動します。

1.5.2 emacs M-f(右方向)、M-b(左方向)

特にコメントなし。

1.6 まとめ

色々紹介してなんですが、上下左右移動以外は結構使わないです。 私が割と使うのは検索とかファイルの先頭・末尾に移動、行指定移動。 evil-modeの場合は他の操作に割り当てられていたりするので各自確認お願いします。