天才ビル・ジョイが作ったエディタ。
環境とシェル
- :set option --- option をオン
- :set nooption --- option をオフ
- :sh, ^D --- シェルを起動、終了
- :!command --- コマンドを実行
- :n,m! command --- n行目から m行目まで command でフィルタ処理
- :r !command --- コマンドを現在のファイルに読み込む
テキスト移動
- h, j, k, l --- 左、下、上、右
- w, W, b, B --- 前/後の単語(大文字は大きいジャンプ)
- e, E --- 単語の末尾(大文字は大きいジャンプ)
- ), ( --- 次/前のブロックへ
- }, { --- 次/前の段落へ
行移動
- [Enter] --- 次の行
- ^, $ --- カレント行の先頭/末尾
- H --- Head. 画面の最上行
- M --- Middle. 画面の中央行
- L --- Last. 画面の最下行
- nH, nL --- 上(下)から n 行目
スクロール
- [Ctrl] + [Y], [Ctrl] + [E] --- 1行ずつ上/下にスクロール
- [Ctrl] + [U], [Ctrl] + [D] --- 半画面ずつ上/下にスクロール
- [Ctrl] + [B], [Ctrl] + [F] --- 1画面ずつ上/下にスクロール
- z[Enter] --- カーソルのある行を一番上に
- z. --- カーソルのある行を中央に
- z- --- カーソルのある行を一番下に
検索と置換
- tx --- カレント行内でカーソルより後方にある x の直前にジャンプ
- Tx --- カレント行内でカーソルより前方にある x の直前にジャンプ
- fx --- カレント行内でカーソルより後方にある x にジャンプ
- Fx --- カレント行内でカーソルより前方にある x にジャンプ
- [;], [,] --- カレント行の文字検索を前方/後方に繰り返す
- /pattern --- 前方にパターンを検索
- ?pattern --- 後方にパターンを検索
- n, N --- 直近の検索を前方/後方に繰り返す
- :set hlsearch --- 検索結果をハイライト
- :s/old/new/ --- カレント行の最初の old を new に置換
- :s/old/new/g --- カレント行の全ての old を new に置換
- :1,$s/old/new/g, :%s/old/new/g --- ファイル全ての old を new に置換
- :%s/old/new/gc --- ファイル全ての old を逐一確認しながら new に変換
行番号とマークによるジャンプ
- [Ctrl] + [G] --- ファイル名、状態、カレント行番号の表示
- gg --- ファイル先頭にジャンプ
- G --- ファイル末尾にジャンプ
- :n --- n行目にジャンプ
- mx --- 現在位置を x としてマーク
- `x --- x にジャンプ
挿入と変更
- i, a --- カーソルの前/後にテキストを挿入
- I, A --- 行の先頭/末尾にテキストを挿入
- O, o --- カーソルの上/下にテキストを挿入
- r --- 一文字変更
- cw --- 単語変更
- cc --- カレント行を変更
- c + [motion] --- モーションで指定した場所までを変更
- C --- 行末まで変更
- R --- 重ね書き
- s, S --- 1文字/カレント行をテキストに変更
削除とヤンク
- x, X --- 文字を前方・後方に削除
- dw --- 単語を削除
- dd --- カレント行を削除
- d + [motion] --- モーションで指定した場所までを削除
- D --- 行末までを削除
- yw --- 単語のヤンク
- yy, Y --- カレント行のヤンク
- y + [motion] --- モーションで指定した場所までをヤンク
- P, p --- 削除/ヤンクしたテキストをカーソルの前/後にペースト
- "ayy --- a という名前のバッファにカレント行をヤンク
- "aP --- カーソルの前に、バッファa のテキストをペースト
その他
- . --- 直近の編集コマンドの繰り返し
- v, V --- 文字/行の選択
- u, U --- アンドゥ、カレント行の復元
- J --- 2行の連結
exアドレスと活用
- 1,$ (%) --- ファイル内全ての行
- x,y --- x行目から y行目まで
- 0, ., $ --- ファイルの先頭/カレント行/最終行
- :3,5d --- 3行目〜5行目を削除
- :.,$d --- カレント行からファイル最終行までを削除
- :3,5m0 --- 3行目〜5行目をファイル先頭に移動
- :3,5m10 --- 3行目〜5行目を10行目に移動
- :3,5co$ --- 3行目〜5行目をファイル最終行にコピー
保存と終了
- :e! --- 一番最初の状態へ戻す
- :w, :w! --- 保存、強制的に保存
- :3,5w newfile --- 3〜5行目を newfile として保存
- :3,5w>>file --- 3〜5行目を file に追記
- ZZ --- 保存して終了
- :q, :q! --- 終了、変更を破棄して終了
- Q --- viモードを終了して exモードに切り替える
- :vi --- viモードに戻る