Vimの基本操作
vimrcいじり過ぎてデフォルトの操作方法を忘れつつあるのでメモ
基本的にノーマルモードからのコマンドです
ファイル操作
| 入力 | 動作 | 備考 |
|---|---|---|
| :w | 内容を保存 | :w nameで名前を指定して保存 |
| :q | 終了 | |
| :q! | 強制終了 | |
| :wq | 保存して終了 | ZZ や :xも同様の動作 |
| :qa | 全てのタブ、ウィンドウの終了 | |
| :qa! | 全てのタブ、ウィンドウの強制終了 | |
| :wqa | 全てのタブ、ウィンドウを保存して終了 | |
| :e name | nameファイル(フォルダ)を開く | |
| gf | カーソル位置のファイル名のファイルを開く | |
| C + w, gf | カーソル位置のファイル名のファイルを開く |
モード
| 入力 | 動作 | 備考 |
|---|---|---|
| i | 挿入モード | |
| I^1 | 先頭に移動して挿入モード | |
| a | カーソルの後ろで挿入モード | |
| A | 末尾に移動して挿入モード | |
| o | カーソルのある行の下に新しい行を追加し挿入モード | |
| O^2 | カーソルのある行の上に新しい行を追加し挿入モード | |
| cw | カーソルの下にある単語を削除して挿入モード | |
| C | カーソルから行末までを削除して挿入モード | |
| S | 行を削除して挿入モード | |
| R | 上書きモード | |
| v | ビジュアルモード | |
| V | 行選択のビジュアルモード | |
| Ctrl + v | 矩形選択のビジュアルモード | |
| ESC | ノーマルモードに戻る | Ctrl + c, Ctrl + [ も同様 |
| gh | 選択モードを開始 | vと同様? |
| gH | 選択モードで行選択を開始 | Vと同様? |
| g, Ctrl + h | 選択モードで矩形選択を開始 | Ctrl + vと同様? |
| gv | 直前の選択範囲を再選択 |
カーソル移動
| 入力 | 動作 | 備考 |
|---|---|---|
| gg | 最初の行 | |
| G | 最終行 | |
| h | 左へひとつ移動 | |
| j | 下へひとつ移動 | |
| k | 上へひとつ移動 | |
| l^3 | 右へひとつ移動 | |
| gj | 表示上の下へひとつ移動 | |
| gk | 表示上の上へひとつ移動 | |
| :(数字) | (数字)行目に移動 | |
| w | 次の単語 | |
| W | 次の単語 | |
| b | 前の単語 | |
| B | 前の単語 | |
| f(文字) | 文字へ移動 | |
| F(文字) | 逆方向の(文字)へ移動 | |
| ; | 順方向に繰り返し検索 | f, Fに対応 |
| , | 逆方向に繰り返し検索 | f, Fに対応 |
| 0^4 | 行頭へ移動(インデント無視) | |
| ^ | 行頭へ移動 | |
| $ | 行末へ移動 | |
| + | 下の行の先頭へ移動 | |
| - | 上の行の先頭へ移動 | |
| % | 対応する括弧へ移動 | |
| Ctrl + u | 半画面上 | |
| Ctrl + d | 半画面下 | |
| ctrl + b | 一画面分 上へ移動 | |
| ctrl + f | 一画面分 下へ移動 | |
| zz | カーソルが画面中央になるようにスクロール | |
| H | 画面上の最初の行へ移動 | |
| M | 画面上の中央の行へ移動 | |
| L | 画面上の最後の行へ移動 | |
| g; | 変更してきた箇所へ移動 | |
| g, | 変更してきた箇所へ逆方向に移動 | |
| gd | カーソル位置の単語の定義を現在の関数内で探しジャンプ | |
| gD | カーソル位置の単語の定義を現在のファイル内で探しジャンプ |
検索
| 入力 | 動作 | 備考 |
|---|---|---|
| / | 順方向に文字列検索 | |
| ? | 逆方向に文字列検索 | |
| n | 順方向に繰り返し検索 | /, ? に対応 |
| N | 逆方向に繰り返し検索 | /, ? に対応 |
| * | カーソルの下の単語を順方向検索 | |
| # | カーソルの下の単語を逆方向検索 |
編集
| 入力 | 動作 | 備考 |
|---|---|---|
| . | 直前の変更を繰り返す | |
| u | Undo | |
| Ctrl + r | Redo | |
| >> | インデントを追加 | |
| << | インデントを削除 | |
| r (文字) | カーソルの下の文字を置換 | |
| x | カーソルの下の文字を削除 | |
| X | カーソルの手前の文字を削除 | |
| dd | 行の削除 | |
| d^ | カーソルの前から行頭まで削除 | |
| d0^4 | カーソルの前から行頭まで削除(インデント無視) | |
| D | カーソル下から行末まで削除 | |
| J | 選択行の連結 | |
| Ctrl + a | カーソルの下にある数字を1つインクリメント | |
| Ctrl + x | カーソルの下の数字を1つデクリメント | |
| viw | カーソルが重なっている単語を選択 | |
| ('で囲われている場所で) vi' | '内を全て選択 | 'は適宜変更 |
| ~ | カーソルの下の文字の大文字小文字を入れ替え | |
| gu | 選択した文字を小文字に | |
| gU | 選択した文字を大文字に | |
| = | 選択行のオートインデント |
コピー&ペースト
| 入力 | 動作 | 備考 |
|---|---|---|
| y | コピー | |
| yy | 今いる行をコピー | |
| p | ペースト |
ウィンドウ
| 入力 | 動作 | 備考 |
|---|---|---|
| :split | 画面を上下に分割する | :spに省略可 |
| :vsplit | 画面を左右に分割する | :vsに省略可 |
| :hide | 現在のウィンドウを閉じる | |
| :only | 現在のウィンドウ以外を閉じる | |
| Ctrl +w, h | 左のWindowへ移動 | |
| Ctrl + w, l ^3 | 右のWindowへ移動 | |
| Ctrl + w, k | 上のウィンドウへ移動 | |
| Ctrl + w, h | 下のウィンドウへ移動 | |
| Ctrl + w, H | ウィンドウ自体を左へ移動 | |
| Ctrl + w, J | ウィンドウ自体を下へ移動 | |
| Ctrl + w, K | ウィンドウ自体を上へ移動 | |
| Ctrl + w, L | ウィンドウ自体を右へ移動 |
タブ
| 入力 | 動作 | 備考 |
|---|---|---|
| :tabnew | 新規タブ | |
| :tabedit filename | 新しいタブでfilenameへ開く。引数がなければ新しいタブを開く | :tabe に省略可 |
| :tabnext | 次のタブへ切替。引数(数値)があれば、その番号のタブを開く(:tabn 1 とか) | :tabn に省略可 |
| :tabNext, :tabprevious | 前のタブへ切替。引数があればその数値分先の左のタブへ切替 | それぞれ:tabN, :tabp に省略可 |
| :tabrewind, :tabfirst | 左端のタブへ切替 | :tabrewind は :tabr に省略可 |
| :tablast | 右端のタブへ切替 | :tabl に省略可 |
| :tabclose | 今いるタブを閉じる | :tabc に省略可 |
| :tabonly | 今いるタブ以外を閉じる | :tabo に省略可 |
| gt | 次のタブへ切替 | (数字)gt で(数字)番目のタブへ切り替え |
| gT | 前のタブへ切替 | (数字)gT で(数字)番目のタブへ切り替え |
その他
| 入力 | 動作 | 備考 |
|---|---|---|
| :!(コマンド) | コマンドをシェルで実行 | |
| ga | カーソル位置の文字のASCIIコード値を表示する |