はじめに
タイトルにも書きましたがVim初心者です。覚え書きです。
サーバ上でファイルを編集するときはVimを使用していたものの、全く使いこなせていませんでした。
ですが、さくらのVPSでUbuntu16.04を建てたにて開発をサーバ上で行うようになってから普段使っているSublime Text3が使えない...
(もちろんSFTPプラグインはありますが...)
結局自分のPCで開発してるじゃないか...俺が求めていたのはこうじゃない!(たぶん)
というわけで、とりあえずVimでの操作方法を覚える初手として、個人的に覚えやすいなと感じた カーソル移動コマンドをまとめてみました。
注意
- 基本的にカーソル移動はノーマルモードで行います
- コマンドの回数指定についてはほぼ記述していません
- 各項目名は自分の分かり易い区分けをするために付けたもので、正式にそう呼ばれているかは考慮していません...
バージョンとか
- Vim - Vi IMproved 7.4
- Huge版 without GUI.
- 適用済みパッチ: 1-1689
- 追加拡張パッチ: 8.0.0056
凡例
-
h: キー一つのみで動作するコマンド -
c-f: ctrlキーと同時押しで動作するコマンド -
{num}G: 数{num}を入力して動作するコマンド -
f{char}: コマンドの後に一文字入力して動作するコマンド -
/{pattern}: コマンドの後に{pattern}を入力して動作するコマンド
{pattern}について
文字単位移動(通常移動)
おそらくVimを初めて触った際に 厨二心をくすぐられる 覚えるコマンドだと思います。
キーが横一列に並んでいるので押しやすく、矢印キーを押すためにホームポジションを崩さなくて済みます。
-
h: 左に移動 -
j: 下に移動 -
k: 上に移動 -
l: 右に移動
単語単位移動
h, lよりもよく使う気がする。
記号区切り
-
w: 単語分先へ移動 -
b: 単語分前へ移動 -
e: 単語の末尾へ移動
空白区切り
-
W: 空白区切りの単語分先へ移動 -
B: 空白区切りの単語分前へ移動 -
E: 空白区切りの単語の末尾へ移動
行/文/段落単位移動
-
0: 行頭へ移動 -
^: 空白以外の行頭へ移動(インデントとか) -
$: 行末へ移動 -
): 文分上に移動 -
(: 文分下に移動 -
}: 段落分上に移動 -
{: 段落分下に移動
行指定移動
-
{num}G: {num}行目に移動 -
:{num}: {num}行目に移動 -
gg: 1行目に移動 -
G: 最後の行に移動
画面単位移動
-
c-b: 画面分上に移動 -
c-f: 画面分下に移動 -
c-u: 画面の半分上に移動 -
c-d: 画面の半分下に移動 -
H: 画面内の最初の行に移動 -
M: 画面の中央の行に移動 -
L: 画面内の最後の行に移動
検索移動
厳密にはカーソル移動ではない...かも。
同一行内
-
f{char}: 右方向にある{char}に移動 -
F{char}: 左方向にある{char}に移動 -
;: 直前の同一行内検索を繰り返す -
,: 直前の同一行内検索を逆方向に繰り返す
ファイル内
-
%: 対応する括弧類に移動 -
*: カーソル位置の単語を下方向に検索 -
#: カーソル位置の単語を上方向に検索 -
g*: カーソル位置の単語(部分一致)を下方向に検索 -
g#: カーソル位置の単語(部分一致)を上方向に検索 -
/{pattern}: {pattern}を含む個所を下方向に検索
{pattern}について -
?{pattern}: {pattern}を含む個所を上方向に検索 -
n: 直前のファイル内検索を繰り返す -
N: 直前のファイル内検索を逆方向に繰り返す
次回予告
次は編集系をまとめる予定です。
- インサードモードへの入り方
- ビジュアルモード、矩形ビジュアルモード
- デリート、コピー、カット、ペースト
な感じで。
おわりに
今回はカーソル移動を扱いましたが、便利なコマンドやプラグインも覚えていこうと思っています。
(surround.vimとか...)
また、今回の内容についてのアドバイス、ご意見等ありましたらコメント等頂けると嬉しいです。