Linux - vi



 ◆ vi エディタとは

 viエディタとは、UNIXシステムで古くから利用されているテキストエディタのことです。viエディタで
 編集する際、データ入力とデータの保存などを行う場合とではモードが異なります。viのモードには以下
 の2種類のモードがあります。 vi コマンドによる vi の起動時はデフォルトでコマンドモードになります。

モード 説明
入力モード  文字入力を行う場合のモード
コマンドモード  vi エディタのコマンドと解釈するモード。削除、移動、コピー、保存などの操作


 vi の構文は以下の通りです。-Rを指定することで読み取り専用として開くことができます。

 ◆ 構文 : vi [ -R ] [ ファイル名 ]



 ◆ モードの切り替え

 コマンドモードから入力モードへは以下の入力キーを押すことで切り替えることができます。

 【 コマンドモードから入力モードへの切替 】
入力キー 説明
a  カーソル位置の後に文字を入力できるように、入力モードへ切り替え
A  カーソル位置の行末に文字を入力できるように、入力モードへ切り替え
i  カーソル位置に文字を入力できるように、入力モードへ切り替え
I  カーソル位置の行頭に文字を入力できるように、入力モードへ切り替え
o  カーソル位置の行の下に空白行を挿入して、そこに入力できるように、入力モードへ切り替え
O  カーソル位置の行の上に空白行を挿入して、そこに入力できるように、入力モードへ切り替え



 入力モードからコマンドモードへ切り替えるためにはEscキーを入力します。

 【 入力モードからコマンドモードへの切替 】
入力キー 説明
Esc  入力モードからコマンドモードへ切り替え

 ※ ちなみにBIG-IPデバイスで vi を実行すると、デフォルトで入力モードになっています。


 ◆ コマンドモードでのカーソル移動

 コマンドモードでは、以下のキーによりカーソル操作を行えます。

 
【 コマンドモードにおける vi のカーソル操作 】
入力キー 説明
h  左矢印(←)キーと同じ意味であり、カーソル位置を1文字、左へ移動
l  右矢印(⇒)キーと同じ意味であり、カーソル位置を1文字、右へ移動
k  上矢印(↑)キーと同じ意味であり、カーソル位置を1文字、上へ移動
j  下矢印(↓)キーと同じ意味であり、カーソル位置を1文字、下へ移動
0  行頭へ移動( カーソルのある行の左端へ移動 )
$  行末へ移動( カーソルのある行の右端へ移動 )
H  画面の一番上の行頭へ移動
L  画面の一番下の行末へ移動
gg  ファイルの先頭行へ移動
G  ファイルの最終行へ移動
nG  ファイルのn行目へ移動 ( :n でも同じ )



 ◆ コマンドモードでの vi 編集と vi 検索

 データ編集において、文字列の削除、コピー、貼り付けなどを行いたい場合は以下のキーを入力します。

 
【 コマンドモードにおける vi の編集 】
入力キー 説明
x  deleteと同じ意味であり、カーソル位置の文字の削除
X  Backspaceと同じ意味であり、カーソル位置の前の文字の削除
dd  カーソル位置の現在の行を削除
dw  カーソル位置から次の単語までを削除
yy  カレント行のコピー
p (小文字)  カーソル位置の後(右側)にコピーしたものを貼り付け
P (大文字)  カーソル位置の前(左側)にコピーしたものを貼り付け
r  カーソル位置の1文字を置換


 【 コマンドモードにおける vi の検索 】
入力キー 説明
/文字列  カーソル位置からファイル末尾に向かって、指定した文字列の検索
?文字列  カーソル位置からファイル先頭に向かって、指定した文字列の検索
n  上記の検索 ( /文字列、?文字列 ) による次の文字列の検索
N  上記の検索 ( /文字列、?文字列 ) による次の文字列の検索 ( 逆方向 )



 ◆ コマンドモードでの vi の終了方法

 テキストの入力が完了して、vi を終了する
 ためには以下のコマンドで終了を行います。

 以下コマンドは行編集モードと呼ばれており
 最初に:を入力した上でキー入力を行います。

 色々と紹介していますが、よく使用される
 キーは、設定保存して終了させる
wq!と、
 設定保存せずに終了させる
q!の2つです。


入力キー 説明
 :q  編集データを保存せずに終了 ( 保存するかどうかの確認がある )
 :q !  編集データを保存せずに強制終了
 :w  編集データの内容でファイルを上書き保存 ( エディタは終了しない )
 :w!  編集データの内容でファイルを強制的に上書き保存 ( エディタは終了しない )
 :wq  編集データを保存して終了
 :wq !  編集データの内容でファイルを強制的に上書き保存 ( エディタは終了 )
 ZZ  編集データを保存して終了 ( :wq と同じ )
 :e!  最後に保存した内容に復帰
 :r ファイル名  ファイルの内容を現在の行以降に読み込み
 :! コマンド  vi を終了せずにシェルコマンドを実行
 :r! コマンド  シェルコマンドの実行結果の挿入



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved