はじめに
タイトルにも書きましたが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
: 行頭へ移動^
: 空白以外の行頭へ移動(インデントとか)$
: 行末へ移動)
: 文分上に移動(
: 文分下に移動}
: 段落分上に移動{
: 段落分下に移動[(
:])
: a
行指定移動
{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とか...)
また、今回の内容についてのアドバイス、ご意見等ありましたらコメント等頂けると嬉しいです。