概要
ほとんどの UNIX 系 OS にデフォルトで搭載されているエディタです。
慣れてないと使えません。
使いこなすのは難しいですが、一度覚えてしまえばどの UNIX 環境でも使えます。
(Emacs が標準で入っていないことも多いです)
コマンド一覧
Vim の操作はすべてコマンドで行います。
コマンドを覚えないと、編集も終了もできません。
コマンドをすべて覚える必要はありませんが、多くのコマンドを覚えていると操作が早くなります。
:から始まるのはexコマンドです。最後に Enter を押してください。
exコマンドとVimのコマンドと同じ動作のものがありますが、どちらを使っても構いません。
凡例
- n
任意の整数を表します - x
任意の一文字を表します - <C-a>
Ctrl を押しながら a - pattern
検索パターンを表します - :w[rite]
:write コマンドと、その省略形 :w を表します
移動系
| 文字単位*2 | h | 左 |
| j | 下 | |
| k | 上 | |
| l | 右 | |
| gj | 表示行で下 | |
| gk | 表示行で上 | |
| 単語単位 | w | 次 |
| W | 次 (記号無視) | |
| b | 前 | |
| B | 前 (記号無視) | |
| e | 単語の末尾 | |
| E | 単語の末尾 (記号無視) | |
| 文単位 | ) | 次 |
| ( | 前 | |
| 段落単位 | } | 次 |
| { | 前 | |
| セクション単位 | ]] | 次 |
| [[ | 前 | |
| 行単位 | 0 | 行頭 |
| $ | 行末 | |
| ^ | 行頭 (空白以外) | |
| + | 次の行の行頭 | |
| - | 前の行の行頭 | |
| n| | カレント行のn文字目 | |
| H | 画面の最上位行 | |
| M | 画面の中央行 | |
| L | 画面の最下行 | |
| nH | 上からn行目の行 | |
| nL | 下からn行目の行 | |
| スクロール | <C-f> | 次の画面 |
| <C-b> | 前の画面 | |
| <C-d> | 半画面次へ | |
| <C-u> | 半画面前へ | |
| <C-e> | 1行次へ | |
| <C-y> | 1行前へ | |
| z<Enter> | カレント行の画面の一番上に表示 | |
| z. | カレント行を画面の中央に表示 | |
| zz | ||
| z- | カレント行を画面の一番下に表示 | |
| 行番号 | nG | n行目へジャンプ |
| :n | n行目へジャンプ | |
| ファイル単位 | gg | ファイルの先頭 |
| G | ファイルの末尾 |
検索
/ ? は Enter を押すと実際に実行します。
| ファイル単位 | /pattern | 順方向にパターン検索 |
| ?pattern | 逆方向にパターン検索 | |
| n | 最後の検索を同じ方向で繰り返す | |
| N | 最後の検索を反対の方向で繰り返す | |
| / | 最後の検索を順方向で繰り返す | |
| ? | 最後の検索を逆方向で繰り返す | |
| 行単位 | fx | カーソルより後ろにある x へジャンプ |
| Fx | カーソルより前にある x へジャンプ | |
| tx | カーソルより後ろにある x の直前の文字にジャンプ | |
| Tx | カーソルより前にある x の直前の文字にジャンプ | |
| ; | 直前のカレント行内検索を繰り返す | |
| , | 直前のカレント行内検索を反対方向で繰り返す |
編集系
| 挿入 | i | カーソルの前に挿入 |
| a | カーソルの後に挿入 | |
| I | 行頭に挿入 | |
| A | 行末に挿入 | |
| o | カーソルの下へ新しい行を作り挿入 | |
| O | カーソルの上に新しい行を作り挿入 | |
| 変更 | r | 文字を変更 |
| cw | (カーソル位置以降の) 単語を変更 | |
| cmotion | カーソル位置と移動コマンドmotionの移動先の間にあるテキストを変更 | |
| S | 一行全体を変更 | |
| cc | 一行全体を変更 | |
| C | カーソル位置から行末まで変更 | |
| c$ | カーソル位置から行末まで変更 | |
| s | 文字を文字列で置き換える | |
| 削除 | x | 文字を削除 |
| X | カーソルの前にある文字の削除 | |
| dw | 単語の削除 | |
| dd | カレント行の削除 | |
| :d[elete] | カレント行の削除 | |
| dmotion | カーソル位置と移動コマンドmotionの移動先の間にあるテキストを削除 | |
| D | 行末まで削除 | |
| ヤンク | yw | 単語をヤンク |
| yy | カレント行をヤンク | |
| dmotion | カーソル位置と移動コマンドmotionの移動先の間にあるテキストをヤンク | |
| ペースト | p | カーソルの後にペースト |
| P | カーソルの前にペースト | |
| 取り消し | u | 最後の操作の取り消し |
| U | カレント業の復元 | |
| やり直し | <C-r> | 取り消し操作をやり直す |
| :red[o] | 同上 | |
| その他 | J | 2行の連結 |
ファイル
| 終了 | ZZ | ファイルに書きこんで終了 (変更がある場合のみ) |
| :x[it] | ファイルに書きこんで終了 (変更がある場合のみ) | |
| :wq | ファイルに書きこんで終了 | |
| :q[uit] | 終了 | |
| ZQ | 終了 (変更されていても無視する) | |
| :q[uit]! | 終了 (変更されていても無視する) | |
| 書き込み | :w[rite] | 書き込み |
| :up[date] | 書き込み (変更がある場合のみ) | |
| 開く | :e[dit] file | fileを新しいバッファに開く |
| :enew | 無名バッファを作成する | |
| ファイル名の変更 | :f[ile] file | ファイル名をfileに変更 |
バッファ
| バッファ移動 | :bn[ext] | 次のバッファへ移動 |
| :bp[revious] | 前のバッファへ移動 |
シェル
| ディレクトリ | :pw[d] | カレントディレクトリを表示 |
| :cd | カレントディレクトリを移動 |
定型操作
文字コードの変換
以下の操作はノーマルモードで行ってください。
| コマンド | 省略形 | 解説 |
| :set fileencoding=文字コード | :se fenc=文字コード | 文字コードの設定を書き換えます |
文字コードには、以下のような文字列が指定できます。
| 設定値 | 文字コード |
| utf-8 | UTF-8 |
| euc-jp | EUC-JP |
| iso-2022-jp | 日本語 JIS |
| cp932 | Shift_JIS |
文字コードを指定して開き直す
ファイルを開いたけど文字化けしている場合など、文字コードを指定して開きたい場合に使います。
| コマンド | 省略形 | 解説 |
| :edit ++encoding=文字コード | :e enc=文字コード | 文字コードを指定して開き直す |
