vi

  • Linuxには絶対入っているエディタ
    • テキストベースで使えるからターミナルでも余裕。
      • しかも高速多機能。

起動

  • vi (ファイル名)

モード

  • コマンドモード
    • 起動時点ではコマンドモード
    • コマンドは後述のコマンド参照
  • 編集モード
    • 編集モードというからには編集する
    • ESCキーでコマンドモードに戻ることができる

コマンド

  • コマンドモードで使えるコマンド
  • 終了キー
    • :q セーブせずに終了
    • :q! 変更をセーブせずに終了
    • :w セーブするが終了しない。
    • :wq = ZZ セーブして終了
  • 編集モードへ移る
    • i 現在のカーソル位置から挿入。
    • R 現在のカーソル位置から置換。
    • A 現在行の末尾に追加。
    • O 現在行の前に行挿入。
    • o 現在行の次に行挿入。
  • カーソル移動キー
    • h =
    • j =
    • k =
    • l =
    • 0 行頭へ
    • $ 行末へ
    • [Enter] 次の行の先頭へ
    • w 次の単語へ
    • b 前の単語へ
    • ctrl + f 次画面へ
    • ctrl + b 前画面へ
    • 1G 文頭へ
    • G 文末へ
    • nnG nn行目へ
  • 変更キー
    • x 1文字削除
    • dd 1行削除(カット)
    • dnnd nn行削除(カット)
    • cw 1語変更
    • c$ カーソル位置から行末まで変更
    • dw 1語削除
    • d$ カーソル位置から行末まで削除
  • 検索
    • /正規表現 前方検索
    • ?正規表現 後方検索
    • n 次の候補
    • N 前の候補
  • 置き換え
    • :1,$s/正規表現/置き換え文字列/g
      文書内の全ての「正規表現」を「置き換え文字列」に置換
  • カット/コピー&ペースト
    • yy 1行コピー
    • ynny nn行コピー
    • dd 1行カット
    • dnnd nn行カット
    • p 張り付け(ペースト)
  • その他
    • .(ドット) 直前の変更操作の繰り返し
    • u 直前の変更操作の取り消し(何回でも戻れる)
    • :r xxx ファイルxxxの内容を次の行に挿入
    • :r! xxx OSのxxxコマンドを実行し、その結果を次の行にに挿入。
    • :h 日本語マニュアルを表示