Vimの基本操作

はじめに

  • 対象読者: Vim初心者、これからVimを触る人
  • 説明内容: 筆者が個人的に覚えておいた方が良いと思ったものを抜粋

Vimのコマンドはかなり多いので、もし他のコマンドを知りたい場合はググってみてください。

カーソル移動

Vimではカーソルを移動させるのに、十字キー以外が使えます。
そして、慣れてしまえば十字キーよりも早く正確に動かせます。

移動方向 対応コマンド
h
j
k
l

余談ですが、Macでは日本語入力モードでz + 上記アルファベットのどれかを入力すると、Vimにおいてそのアルファベットに対応する矢印文字(←/↓/↑/→)が入力できます。

モードの切替

Vimには以下のモードが存在します。

モード モードの内容 他のモードからの切替方法
ノーマルモード h Esc
文字入力モード j iなど
文字選択モード k v

ファイル操作

コマンド 操作内容
:w ファイルを保存する
:w + ファイル名 開いているファイルをファイル名で保存する
:q ファイルを閉じる
:q! ファイルを強制的に閉じる(変更は破棄される)
:wq ファイルを保存して閉じる
:! + コマンド Vimを開いたまま、外部コマンドを実行する
:r ファイル名 ファイル名の中身を挿入する

文字操作

コマンド 操作内容
i カーソル位置で文字入力モードに切り替える
a カーソル位置から1文字進めて文字入力モードに切り替える
A カーソル位置の行末から文字入力モードに切り替える
o カーソル位置の下に1行追加してから文字入力モードに切り替える
O カーソル位置の上に1行追加してから文字入力モードに切り替える
x カーソル後の文字を1文字消す(Vimレジスタに格納する)
y 選択範囲をコピーする(Vimレジスタに格納する)
p Vimレジスタに格納された文字列を、カーソルの1文字先に貼り付ける
r カーソルの1文字先を入力した文字で置き換える
R カーソル位置からEscを入力するまで文字入力し、置き換える
cw カーソル位置の1単語を削除し、文字入力モードに切り替える
cc カーソル位置の行を削除し、文字入力モードに切り替える
dw カーソル位置の1単語削除する
d$ カーソル位置から行末まで削除する
dd カーソル位置の行を削除する(Vimレジスタに格納する)
u 直前操作の取り消し
U 行全体の取り消し
Ctrl + R 取り消しの取り消し

dなどのコマンドは、コマンド実行回数 + コマンド + モーション回数 + モーションというように構成されており、上記のdw中のwはモーションになります。
よって、d2wなどと入力すれば、カーソル位置の 2 単語削除する、という操作になります。

カーソル移動

コマンド 操作内容
h, j, k, l カーソルの位置を1文字分動かす
0 行の先頭に移動する
gg ファイルの先頭行に移動する
G ファイルの最終行に移動する
数字 + G ファイルの数字行に移動する
Ctrl + g 現在のファイル内の行数を表示する
Ctrl + o 前のカーソル位置に戻る
Ctrl + i Ctrl + oで戻ったカーソル移動を進める

検索

コマンド 操作内容
/ + 文字列 ファイル内を文字列で検索する(ファイル内を前から)
? + 文字列 ファイル内を文字列で検索する(ファイル内を後ろから)
n 次に検索がヒットした場所へ移動する
N 前に検索がヒットした場所へ移動する
% 対になる(), {}, []に移動する

まとめ

Vimのコマンドはものすごく多いので、一部だけ抜粋しました。
また、操作方法が独特なので、自分自身に刷り込ませるためにも、継続的に触れていく必要があるなと痛感しております。