はじめに
タイトルにも書きましたが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とか...)
また、今回の内容についてのアドバイス、ご意見等ありましたらコメント等頂けると嬉しいです。