はじめに
本記事では vim の使い方を学ぶために、コマンドとキーだけではなく、GIF画像によるアニメーションを利用し、使い方をイメージしやすいようにしました。使用頻度が高い機能を精選10機能とし、その他の便利機能も整理しました。また今後も、便利な vim の機能があれば、記事に追加する予定です。
本記事の構成
章 | 章名 | 内容 |
---|
第1章 | 精選10機能 | これだけを学べば vim が使えるようになります |
第2章 | 便利機能 | vim の便利な機能を紹介します |
- | 付録 | vim の単体機能を整理しました |
第1章 精選10機能
① 新規のファイルを作成する
- 「
vim 新規ファイル名
」で新規ファイルを開く。 - 「
i
」でInsert Modeに移る。 - 本文を入力する。
- 「
Esc
」でNomarl Modeに移る。 - 「
:wq
」でファイルを保存する。 - 「
cat 新規ファイル名
」でファイルの中身を確認する。
② 既存のファイルを編集する
- 「
vim 既存ファイル名
」で既存ファイルを開く。 - 「
i
」でInsert Modeに移る。 - 編集する。
- 「
Esc
」でNomarl Modeに移る。 - 「
:wq
」でファイルを保存する。 - 「
cat 既存ファイル名
」でファイルの中身を確認する。
③ 1行を削除する
- 削除する行にカーソルを移動する。
- 「
dd
」で削除する。
④ 複数行を削除する
- 削除する先頭行にカーソルを移動する。
- 「削除する行数 +
dd
」で削除する。
⑤ 行単位でヤンク&ペーストする
- ヤンクする行にカーソルを移動する。
- 「
yy
」でヤンクする。 - 「
p
」でペーストする。
⑥ 行単位でカット&ペーストする
- カットする行にカーソルを移動する。
- 「
dd
」でカットする。 - 「
p
」でペーストする。
⑦ undo / redo
- 「
u
」で undo する。 - 「
Ctrl-r
」で redo する。
⑧ 置換する
- 「
:%s/
+ 置換前文字列 + /
+ 置換後文字列 + /g
」で置換する。
⑨ 検索する
- 「
/
+ 検索文字列」で検索する。 - 「
n
」で後方検索する。 - 「
N
」で前方検索する。
⑩ 画面をスクロールする
- 「
Ctrl-f
」で下にスクロールする。 - 「
Ctrl-b
」で上にスクロールする。
第2章 便利な機能
① すべての行頭に接頭語を追加する
- 「
Ctrl-v
」で矩形選択する。 - 「
G
」で最終行まで選択する。 - 「
I
」で Insert Mode に移る。 - 接頭語を入力する。
- 「
Esc
」で Normal Mode に移る。
② すべての行末に接尾語を追加する
- 「
Ctrl-v
」で矩形選択する。 - 「
G
」で最終行まで選択する。 - 「
$
」で行末を選択する。 - 「
A
」で Insert Mode に移る。 - 接尾語を入力する。
- 「
Esc
」で Normal Mode に移る。
③ インデントを増減する
- インデントを増やす行を選択する。
- 「増やすインデント数 +
>
」でインデントを増やす。 - インデントを減らす行を選択する。
- 「減らすインデント数 +
<
」でインデントを増やす。
④ 大文字小文字を変換する
- 小文字にしたい箇所を選択する。
- 「
u
」で小文字に変換する。 - 大文字にしたい箇所を選択する。
- 「
U
」で大文字に変換する。
⑤ 改行を削除する
- 改行を削除したい行を選択する。
- 「
J
」で改行を削除する。
付録
Mode の切り替え
Normal Mode
コマンド | 動作 |
---|
Ctrl-[ | Normal Mode に移る |
Insert Mode
コマンド | 動作 |
---|
i | カーソルの位置から Insert Mode に移る |
コマンド | 動作 |
---|
a | カーソルの直後から Insert Mode に移る |
コマンド | 動作 |
---|
I | 行頭から Insert Mode に移る |
コマンド | 動作 |
---|
A | 行末から Insert Mode に移る |
コマンド | 動作 |
---|
s | カーソル上の文字を削除してから Insert Mode に移る |
コマンド | 動作 |
---|
cw | カーソル上から単語末までを削除してから Insert Mode に移る |
コマンド | 動作 |
---|
ciw | カーソル上の単語を削除してから Insert Mode に移る |
コマンド | 動作 |
---|
ci" | ダブルクォーテーションの内部を削除して Insert Mode に移る |
コマンド | 動作 |
---|
cit | HTMLタグの内部を削除して Insert Mode に移る |
コマンド | 動作 |
---|
S | カーソルがある行を削除してから Insert Mode に移る |
コマンド | 動作 |
---|
C | カーソルがある位置から行末までを削除してから Insert Mode に移る |
コマンド | 動作 |
---|
o | カーソルがある行の下に新たな行を追加して Insert Mode に移る |
コマンド | 動作 |
---|
O | カーソルがある行の上に新たな行を追加して Insert Mode に移る |
Visual Mode
コマンド | 動作 |
---|
V | 行単位の選択をして Visual Mode に移る |
コマンド | 動作 |
---|
Ctrl-v | 矩形選択をして Visual Mode に移る |
Command Mode
Normal Mode
画面スクロール
コマンド | 動作 |
---|
Ctrl-f | 1画面、下にスクロールする |
Ctrl-b | 1画面、上にスクロールする |
コマンド | 動作 |
---|
Ctrl-d | 半画面、下にスクロールする |
Ctrl-u | 半画面、上にスクロールする |
コマンド | 動作 |
---|
Ctrl-e | 1行、下にスクロールする |
Ctrl-y | 1行、上にスクロールする |
コマンド | 動作 |
---|
zz | カーソルがある行を画面中央になるようにスクロールする |
カーソル移動
コマンド | 動作 |
---|
w | 単語単位で後方に移動する |
b | 単語単位で前方に移動する |
コマンド | 動作 |
---|
0 | 行頭に移動する |
^ | 文頭に移動する |
$ | 行末に移動する |
コマンド | 動作 |
---|
gg | 先頭行(1行目)に移動する |
数字 + gg | "数字"行目に移動する |
G | 最終行に移動する |
コマンド | 動作 |
---|
Shift-] | 下方の空行に移動する |
Shift-[ | 上方の空行に移動する |
コマンド | 動作 |
---|
H | 画面上の一番上の行に移動する |
M | 画面上の真ん中の行に移動する |
L | 画面上の一番上の行に移動する |
削除
コマンド | 動作 |
---|
D | カーソルがある位置から行末まで削除する |
コマンド | 動作 |
---|
数字 + dd | カーソルがある位置から下方の"数字"分の行を削除する |
ヤンク&ペースト
コマンド | 動作 |
---|
yiw | カーソルがある位置の単語をヤンクする |
コマンド | 動作 |
---|
yi" | ダブルクォーテーションの内部をヤンクする |
コマンド | 動作 |
---|
yy | カーソルがある位置の行をヤンクする |
コマンド | 動作 |
---|
数字 + yy | カーソルがある位置から下方の"数字"分の行をヤンクする |
コマンド | 動作 |
---|
p | 行は下方に、単語は右方にペーストする |
コマンド | 動作 |
---|
P | 行は上方に、単語は左方にペーストする |
コマンド | 動作 |
---|
数字 + p | 行は下方に、単語は右方に"数字"分の行/単語をペーストする |
検索
コマンド | 動作 |
---|
/ + 文字列 | 文字列を上から検索する |
n | カーソルより下側にある検索候補に移動する |
N | カーソルより上側にある検索候補に移動する |
コマンド | 動作 |
---|
? + 文字列 | 文字列を下から検索する |
n | カーソルより下側にある検索候補に移動する |
N | カーソルより上側にある検索候補に移動する |
コマンド | 動作 |
---|
* | カーソル上の単語を下方に検索 |
# | カーソル上の単語を上方に検索 |
undo / redo
インクリメント / デクリメント
コマンド | 動作 |
---|
Ctrl-a | カーソルの位置にある数字を増やす |
Ctrl-x | カーソルの位置にある数字を減らす |
インデント
コマンド | 動作 |
---|
>> | インデントを増やす |
<< | インデントを減らす |
数字 + >> | 現在のカーソルから数字分の下の行のインデントを増やす |
数字 + << | 現在のカーソルから数字分の下の行のインデントを減らす |
コマンド | 動作 |
---|
選択 + 数字 + > | 選択した行を"数字"分だけインデントを増やす |
選択 + 数字 + < | 選択した行を"数字"分だけインデントを減らす |
Insert Mode
インデント
コマンド | 動作 |
---|
ctrl-t | インデントを増やす |
ctrl-d | インデントを減らす |
Visual Mode
選択
コマンド | 動作 |
---|
vi" | ダブルクォーテーションの内部を選択する |
全選択
コマンド | 動作 |
---|
gg + V + G | ファイル全体を選択する |
Replace Mode
上書き
コマンド | 動作 |
---|
r + 文字 | 任意の"文字"を上書きする |
コマンド | 動作 |
---|
R + 文字列 | 任意の"文字列"を上書きする |
Command Mode
保存 / 終了
コマンド | 動作 |
---|
:w + filename | "filename"名でファイルを保存する |
置換
コマンド | 動作 |
---|
:s/before/after | カーソルの行にある最初の"before"を"after"に置換する |
コマンド | 動作 |
---|
:s/before/after/g | カーソルの行にある"before"をすべて"after"に一括置換する |
コマンド | 動作 |
---|
:%s/before/after/g | ファイルのすべての"before"を"after"に一括置換する |
コマンド | 動作 |
---|
:%s/^/prefix | ファイル全体のすべての行の先頭に"prefix"を追加する |
コマンド | 動作 |
---|
:%s/$/suffix | ファイル全体のすべての行の末尾に"suffix"を追加する |
コマンド | 動作 |
---|
:%s;/var/home;/usr/home | パス名などを置換するときは、"/"でなく、";"を区切り文字に使用する |
削除
コマンド | 動作 |
---|
:g/文字列/d | "文字列"を含んでる行を削除する |
Version
$ vim --version
VIM - Vi IMproved 8.0
Huge version without GUI.
参考サイト