Vimの使い方 基本操作まとめ
Vimの使い方, 特に自分がよく使う基本操作をまとめてみました.
目次
編集, 保存, 終了
| コマンド | 動作 |
|---|---|
| :e [file] | fileを開く |
| :e. | エクスプローラーを開く |
| :w | 保存 |
| :q | 終了 |
| :q! | 保存せず終了 |
| ZZ | 保存して終了 |
| ZQ | 保存せずに終了 |
移動系
| コマンド | 動作 |
|---|---|
| h, j, k, l | 左, 下, 上, 右 |
| gj, gk | 下, 上に1行移動. (エディタで表示されている行上で移動, つまり, エディタの横幅の制約によって行が折り返されている場合でも, 移動可能) |
| w | 1単語分進む |
| W | 1単語分進む(記号では区切られないので, 次のスペースや, 改行文字まで飛ぶ) |
| b | 1単語分戻る |
| B | 1単語分戻る(記号では区切られないので, 前のスペースや, 改行文字まで飛ぶ) |
| f[文字] | 次の[文字]まで飛ぶ |
| F[文字] | 前の[文字]まで飛ぶ |
| t[文字] | 次の[文字]の手前まで飛ぶ |
| T[文字] | 前の[文字]の次まで飛ぶ |
| ; | f, F, t, Tで検索した文字を同方向に繰り返し検索する |
| , | f, F, t, Tで検索した文字を逆方向に繰り返し検索する |
| g; | 直前に変更した位置にカーソルを移動(繰り返し入力することで, 変更リストを遡る) |
| g, | g#を使用して遡った変更リストを逆順に進め, カーソルを移動する. |
| gg | ファイルの先頭に移動 |
| G | ファイルの最後に移動 |
| [数値]gg, [数値]G, :[数値] | [数値]行に移動 |
| H, M, L | 画面に表示されている行について, 最初の行(H), 真ん中の行(M), 最後の行(L)に移動 |
| 0 | 行の先頭に移動 |
| ^ | 行のテキスト部分の先頭に移動 |
| $ | 行の最後に移動 |
| % | 対応する括弧に移動 |
| ( | 文単位での移動. 前の文の先頭に移動 |
| ) | 文単位での移動. 後ろの文の先頭に移動 |
| { | 段落単位での移動. 前の段落の先頭に移動 |
| } | 段落単位での移動. 後ろの段落の先頭に移動 |
| Ctrl-u | 半画面分戻る |
| Ctrl-d | 半画面分進む |
| Ctrl-b | 1画面分戻る |
| Ctrl-f | 1画面分進む |
| Ctrl-o | ジャンプリストを遡ってカーソルを移動する(検索や行数指定移動などがジャンプリストに保存されている) |
| Ctrl-i | ジャンプリストを進めてカーソルを移動する(検索や行数指定移動などがジャンプリストに保存されている) |
モード変更
| コマンド | 動作 |
|---|---|
| esc | ノーマルモードに戻る |
| Ctrl-[ | ノーマルモードに戻る |
| i | カーソル位置からインサートモードに入る |
| a | カーソルの直後からインサートモードに入る |
| I | 行頭からインサートモードに入る |
| A | 行末からインサートモードに入る |
| Ctrl-o(インサートモード中に) | インサートノーマルモードに入る(インサートモード中に1コマンドのみノーマルモードのコマンドを使用できる) |
| v | ビジュアルモードに入る |
| V | 行単位の選択をするビジュアルモードに入る |
| Ctrl-v | 矩形選択をするビジュアルモードに入る |
| gv | 前回選択した範囲が再選択された状態でビジュアルモードに入る |
| : | コマンドラインモードに入る(続けてコマンドを打ち, Enterで実行) |
矩形選択の使い方については, 「矩形選択モードの使い方」でも解説していますので, よろしければ参考になさってください.
削除, コピー
| コマンド | 動作 |
|---|---|
| x | カーソル上の文字を消す |
| s | カーソル上の文字を消して, インサートモードに入る |
| dd | カーソルがある行を消す |
| dw | カーソル位置から1単語分削除する |
| diw | カーソル位置にある単語を1つ削除する |
| dt( | カーソル位置から, 次に最初に出現する(までを削除する |
| cc | カーソルがある行を消して, インサートモードに入る |
| cw | カーソル位置から1単語分削除して, インサートモードに入る |
| ciw | カーソル位置にある単語を1つ削除して, インサートモードに入る |
| ct( | カーソル位置から, 次に最初に出現する(までを削除して, インサートモードに入る |
| D | カーソル位置から行末まで削除 |
| C | カーソル位置から行末まで削除して, インサートモードに入る |
| yy | カーソルがある行をコピー |
| y | ビジュアルモードで選択されている部分をコピー |
| p | カーソル行の下の行にペースト |
| P | カーソル行の上の行にペースト |
| Ctrl-r 0(ゼロ)(インサートモード中に) | レジスタ0に保存されている文字列を貼り付ける. 通常, yを使用してコピーした文字列は, レジスタ0に保存される. |
検索
| コマンド | 動作 |
|---|---|
| / | 続けて文字を打ち, Enterで文字列を確定し, 後方検索をかける |
| ? | 続けて文字を打ち, Enterで文字列を確定し, 前方検索をかける |
| * | カーソル下の単語を, 後方検索する |
| # | カーソル下の単語を, 前方検索する |
| g* | カーソル下の単語を含む文字列を, 後方検索する |
| g# | カーソル下の単語を含む文字列を, 前方検索する |
| n | 次の単語に移る |
| N | 前の単語に移る |
Undo, Redo, 繰り返し
| コマンド | 動作 |
|---|---|
| u | Undo |
| Ctrl-r | Redo |
| . | 直前の操作の繰り返し |
Vimでコマンドを繰り返したいときに非常に便利な機能として, マクロがあります. 任意のコマンドを記憶させて, それをいつでも繰り返せるようにできるというものです. 使い方を「Vimのマクロの使い方」, マクロを使った便利操作の一例を「Vimでマクロを使って連番の文を簡単に入力する方法」で解説しておりますので, よろしければ参考になさって下さい.
インデント
| コマンド | 動作 |
|---|---|
| = | カーソルがある行をインデント. ビジュアルモードで範囲を選択していれば, その範囲をインデント |
| >> | インデントを追加 |
| << | インデントを削除 |
置換
| コマンド | 動作 |
|---|---|
| r[文字] | カーソル上の文字を[文字]に置換 |
| :%s/before/after/g | ファイル上の全ての"before"を"after"に置換 |
| :s/before/after/g | カーソルの行の全ての"before"を"after"に置換 |
| :10,20s/before/after/g | 10~20行目の全ての"before"を"after"に置換 |
| :'<,'>s/before/after/g | ビジュアルモードで選択中の範囲の全ての"before"を"after"に置換. " '<,'> "の部分は, 範囲を選択中に":"を押すと自動的に出ます. |
置換については, 「Vimの置換コマンドの使い方」でも解説していますので, よろしければ参考になさってください.
ウィンドウ操作
| コマンド | 動作 |
|---|---|
| :sp [file] | ウィンドウを横に分割し, fileを開く(file名はなくても良い) |
| :vs [file] | ウィンドウを縦に分割し, fileを開く(file名はなくても良い) |
| Ctrl-w s | ウィンドウを横に分割する |
| Ctrl-w v | ウィンドウを縦に分割する |
| :only | カーソルのあるウィンドウ以外閉じる |
| Ctrl-w o | カーソルのあるウィンドウ以外閉じる |
| Ctrl-w w | 次のウィンドウに移動 |
| Ctrl-w p | 前のウィンドウに移動 |
| Ctrl-w h, j, k, l | 左, 下, 上, 右のウィンドウに移動する |
| Ctrl-w H, J, K, L | カーソルがあるウィンドウを左, 下, 上, 右方向に移動する |
タブ
| コマンド | 動作 |
|---|---|
| :tabnew [file] | 新しいタブを開く. ファイル名を入力した場合は, そのファイルを開く |
| :tabclose | タブを閉じる(:qなどでも閉じられます) |
| :tabnext | 次のタブに移動する |
| :tabprevious | 前のタブに移動する |
| :tabfirst | 1番目のタブに移動する |
| :tablast | 最後のタブに移動する |
| :tabonly | 現在のタブ以外全てのタブを閉じる |
| gt | 次のタブに移動する. gtの直前に数字をつけると, 数字番目のタブに移動する |
| gT | 一つ前のタブに移動する |
インクリメント, デクリメント
| コマンド | 動作 |
|---|---|
| Ctrl-a | カーソル行上で, カーソル以降の最初に出現した数字をインクリメント |
| Ctrl-x | カーソル行上で, カーソル以降の最初に出現した数字をデクリメント |
カーソル下に数字がなくても使用できるため, 移動にも使えます.
注意
主にいつも使っているコマンドをまとめてみました. 多くのコマンドは, 直前に数字などを組み合わせて使うことができます. 例えば, 3ddとすれば3行削除できます. 10iでインサートモードに入って, 文字を入力した後にノーマルモードにもどれは, 入力した文字が10個分入力されます. あと, ここに書いてある以外にもたくさんコマンドはありますので, あしからず.