Viエディタ利用ガイド

viエディタはどんなUnix、Linuxには大抵標準装備されているUnixの代表的なエディタです。
通常Windowsなどで使うエディタと比べると使い勝手が悪く感じますが、Linuxの設定ファイル などの書き換えに大いに役立ってくれます。

1.起動と終了

viエディタを起動するにはviコマンドに編集したいファイル名を指定します。
viエディタには「入力モード」と「コマンドモード」があり、起動時は「コマンドモード」 となっています。

vi ファイル名      :起動
i                  :入力モード
Escキー            :コマンドモード
:wq!               :編集内容を保存して、編集を終了
:w!                :編集内容を保存し、編集を継続
:q!                :編集内容を保存せず、編集を終了
 

2.カーソルの移動

他の多くのテキストエディタと異なり、viエディタではカーソルの移動に矢印キーを使いません。カーソルを移動するには、コマンドモードで次のキーを押します。

h                  :左に1文字移動		
j                  :下に1文字移動		
k                  :上に1文字移動		
l                  :右に1文字移動		
0                  :カーソルを現在の行の先頭に移動	
$                  :カーソルを現在の行の末尾に移動	
:0                 :カーソルを文書の先頭行に移動	
:$                 :カーソルを文書の最終行に移動	
 

3.テキストの削除

入力モードで文章を入力している際には、BackSpaceキーで直前に入力した文字を1文字ずつ削除できます。
しかしいったん入力した文章を後から訂正する作業は、コマンドモードで行います。

x                  :カーソル位置の文字を1文字削除する
dw                 :カーソル位置から次の単語の先頭までを削除
d$                 :カーソル位置から行末までを削除
dd                 :カーソルのある行全体を削除
 

4.テキストの修正

テキストの修正は、テキストの削除とiの挿入コマンドを用いれば可能ですが、参考程度に紹介します。

r                  :カーソル位置の文字を1文字変更する
cw                 :カーソル位置から次の単語の先頭まで変更
c$                 :カーソル位置から行末までを変更
cc                 :カーソルのある行全体を変更
 

5.テキストの移動・コピー

テキストを別の場所に移動する時には、delコマンドなどで削除します。
削除されたテキストは、次に別のテキストが削除されるまで、一時的にバッファと呼ばれるメモリに格納されます。
記憶されたテキストは、pコマンドを使って、カーソル位置に貼り付けることができます。


p                  :直前に削除したテキストをカーソル位置に挿入する
 

6.コマンドの取り消しと繰り返し

直前に言ったテキストの追加や削除、変更などは、次の編集コマンドを実行する前であれば、uコマンドで取り消すことが出来ます。u(undo)

u                  :直前のコマンドを取り消し
U                  :現在行を編集前の状態に戻す
.(コンマ)          :直前に実行したコマンドをもう一度実行
 

7.テキストを検索する

大きなファイルを編集する際には、ファイルの中の特定の場所に、すばやくカーソルを移動したいことがあります。
次のコマンドは、ファイルから指定した文字列を探して、その部分にカーソルを移動します。

/検索文字列        :指定した文字列を現カーソルから順方向に検索
?検索文字列        :指定した文字列を現カーソルから逆方向に検索
n                  :前回の検索文字列を再建策
N                  :前回の検索文字列を反対方向に再検索
 

8.高度なviエディタの使い方

指定行への操作

:行番号            :指定した行にジャンプする
:行番号d           :指定した行を削除する
 

文字列の一括置換

ファイル内の文字列を一括置換する:s(substitute)コマンド。

:[行番号] s/検索文字列/置換文字列/ [オプション]

例)
:s/old/new/g            :現在行の文字列oldをすべてnewに置換
:20,30 s/old/new/g      :20行目から30行目の文字列oldをすべてnewに置換
:%s/old/new/c           :ファイル内にある全ての文字列oldを確認をとりながらnewに置換
 

viの環境設定

viの各種動作の設定を切り替えることが出来ます。

:set オプション

例)
:set autoindent         :オートインデントモード
:set ignorecase         :検索実行時大文字小文字の区別をしない
:set number             :画面の左端に行番号を表示する
:set showmatch          :括弧を入力したときに対応する括弧にカーソルをジャンプさせる
:set wrapmargin=桁数    :1行を指定した桁数で自動的に折り返す
:set warpscan           :検索の実行時、ファイル全体を対象にする