天才ビル・ジョイが作ったエディタ。

環境とシェル

  • :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モードに戻る