Vi エディター操作

ページコンテンツ

viとは


viはLinuxコンソール上でファイル編集を行うためのツールです。

構文


vi[オプション]「ファイル名」

起動オプション


  • + コマンド ファイルを開いた際に、指定したViコメンドを実行
  • -C コマンド ファイルを開いた際に、指定したViコメンドを実行※「+ コマンドと同じ」
  • -R ファイルを読み込み専用モードで開く
  • -r 編集途中で保存されずに破棄された内容を復旧する

コマンドモードと入力モードについて


コマンドモード、入力モードという2つの動作モードを切り替えて操作します。

コマンドモード

Viを操作するためのモードです。

入力モード

Viへ登録したい文字を入力するモードです。

コマンドモードから入力モードへ移行


  • a 入力モードに移行後、対応した内容をカーソル位置の直後に入力
  • A 入力モードに移行後、対応した内容をカーソル行の末尾に入力
  • i 入力モードに移行後、対応した内容をカーソル位置の直前に入力
  • I 入力モードに移行後、対応した内容をカーソル行の頭行に入力
  • o 入力モードに移行後、対応した内容をカーソル行の次の行に入力
  • O 入力モードに移行後、対応した内容をカーソル行の前の行に入力

入力モードからコマンドモードへ移行


[ESC] 入力モードを終了し、コマンドモードへ

Viエディタの終了


  • :q ファイルの書き込みを行わずにViを終了
  • :q! 編集中の内容を破棄してViを終了
  • :wq 編集中の内容をファイルに書き込んでViを終了
  • ZZ 編集中の内容をファイルに書き込んでViを終了

Viエディタでのファイル操作


  • :w 編集中の内容をファイルに保存する
  • :e! 編集中の内容を破棄し、直前に保存した内容に戻す
  • :n 複数のファイルを開いている場合は、現在編集中のファイルを閉じ、次のファイルを編集する
  • :n ファイル名 現在編集中のファイルを閉じ、ファイル名で指定したファイルの内容を編集する
  • :r ファイル名 ファイル名で指定されたファイルの内容をカーソルの次の行以降に読み込む
  • :r! コマンド 指定されたコマンドを実行し、その実行結果をカーソルの次の行の以降に読み込む
  • :!コマンド viを終了せずにシェルコマンドを実行

Viのカーソル移動(コマンドモード)


文字単位の移動

  • l 右へ一文字移動
  • h 左へ一文字移動
  • k 上へ一文字移動
  • j 下へ一文字移動

文字単位の移動

  • w 次の単語の先頭へ移動
  • b 現在カーソルのある単語の先頭に移動
  • e 現在カーソルのある単語の終わりに移動
  • W 空白で区切られた次の単語の先頭に移動
  • B 空白で区切られた前の単語の先頭に移動

その他のカーソル移動

  • 0 行頭に移動
  • $ 行末に移動
  • H 表示されているページの1行目に移動
  • L 表示されているページの最下行に移動
  • M 表示されているページの中央行に移動
  • [Ctrl]+y 1行前にスクロール
  • [Ctrl]+e 1行後にスクロール
  • [Ctrl]+u 半ページ前にスクロール
  • [Ctrl]+d 半ページ後にスクロール
  • [Ctrl]+n 1ページ前にスクロール
  • [Ctrl]+f 1ページ後にスクロール
  • 1G ファイルの1行目に移動
  • G ファイルの最後の行に移動
  • nG ファイルのn行目に移動
  • :n ファイルのn行目に移動

Viの文字編集(コマンドモード)


文字・行削除

  • x カーソル位置の1文字を削除
  • X カーソル位置前の1文字を削除
  • dw カーソル位置から次の単語までを削除
  • d$ カーソル位置からその行の最後までを削除
  • d0 カーソル位置からその行の先頭までを削除
  • dd カーソルのある行を削除

数値による回数指定が可能です。
例)
「5dd」:カーソル位置から5行削除
「20x」:20文字削除

コピー

  • yy カーソルのある行をコピー
  • yw カーソル位置から次の単語までをコピー
  • y$ カーソル位置からその行の最後までをコピー
  • y0 カーソル位置からその行の先頭までをコピー

ペースト

  • p カーソル位置の後ろにコピーバッファーの内容をペースト
  • P カーソル位置の前にコピーバッファーの内容をペースト

検索コマンド


コマンド説明
/パターンカーソル位置から後方に向かって指定したパターンを検索
?パターンカーソル位置から前方に向かって指定したパターンを検索
n次を検索
N次を検索(逆方向)
:noh候補のハイライト表示を解除
;%s/A/B/文字列Aを文字列Bに置換

設定変更


「:set」を利用してviの設定を変更できます。

コマンド説明
:set nu行番号を表示
:set nonu行番号を非表示にする
:set ts=タブ幅タブ幅を数値で指定

テキスト処理の関連コマンド



最近の記事