もふのアウトプットブログ

Webエンジニアへの転職を目指すもふのプログラミング学習アウトプットブログ

Vimの基本操作まとめ

Vimはコマンドを覚えることで爆速操作ができますが、用意されているコマンドはかなり多いです。 ここではよく使うコマンドを用途に分けて紹介します。

はじめに

Vimには4つのモードがあります。

インサートモードはテキストを入力するモードなので、使用するのは他のモードへ切り替えるコマンドのみです。
コマンドは主にノーマルモード・コマンドモード・ビジュアルモードで使用します。

モードの切り替え

ノーマルモード→インサートモード

キー 動き
i インサートモードに切り替え、カーソルの左から挿入
a インサートモードに切り替え、カーソルの右から挿入
o インサートモードに切り替え、カーソルの下に空白行を挿入
O インサートモードに切り替え、カーソルがある行に空白行を挿入

インサートモード→ノーマルモード

キー 動き
esc ノーマルモードに切り替え

ノーマルモード→コマンドモード

キー 動き
: コマンドモードに切り替え

ノーマルモード→ビジュアルモード

ビジュアルモードではカーソルの移動ができないので、あらかじめカーソルを操作したい位置に移動させてから切り替えます。

キー 動き
v ビジュアルモードに切り替え

各モードでのコマンド

コマンドは入力後Enterで実行します。

ノーマルモード

画面表示系

キー 動き
:set number 行番号を表示

移動系

キー 動き
k 上の行に移動
j 下の行に移動
h 左に移動
l 右に移動
:10 10行目に移動(数字を変えると移動先の行も変わる)
$ 行末に移動
0 行頭に移動
^ インデントの先頭に移動
{ 上の段落に移動
} 下の段落に移動
[[ 上のセクションに移動
]] 下のセクションに移動
G 最終行に移動
:1 または gg 先頭行に移動
Control + o 移動前の場所に戻る

ファイル保存・終了

キー 動き
:w ファイル名.拡張子 名前をつけて保存
:w 上書き保存
:q 編集終了
:wq 保存して編集終了
:q! 保存せずに編集終了

編集系

キー 動き
x カーソルがある位置の文字を一文字削除
X カーソル位置の左の文字を一文字削除
dd 一行削除
2dd 2行削除(数字を変えると消える行数も変わる)
dw 単語の削除(単語の先頭にカーソルがある状態で。スペースで区切られているところを「単語」と認識する)
u 前回の操作を取り消す(undo)
Control + r undoを取り消す
yy 一行コピー
2yy 二行コピー(数字を変えるとコピーする行数も変わる)
p 下の行にペースト
P 現在の行にペースト
. 前回のコマンドを再実行
J 二行を一行に連結(一行目にカーソルがある状態で)

検索と置換

キー 動き
/テキスト テキストを検索
n 次の検索結果に移動
N 前の検索結果に移動
R カーソルのある位置から一文字ずつ置換
:%s/検索するテキスト/置換するテキスト/g 一括置換
:%s/検索するテキスト/置換するテキスト/gc 検索結果をひとつずつ確認しながら置換

コマンドモード

キー 動き
:! コマンド コマンドを実行
:!! 前回のコマンドを再実行

ビジュアルモード

キー 動き
> インデントを右に移動
< インデントを左に移動
y コピー
j 選択範囲を下の行に拡大
k 選択範囲を上の行に拡大
:norm I テキスト 行頭に挿入
:norm A テキスト 行末に挿入

さいごに

よく使うコマンドだけでもこれだけの数があります。
丸暗記はできないと思うので、使って慣れて手で覚えるのが一番良さそうですね!