Categories: linuxOS

Linux 「vi」の基本操作の解説

今回は、Linuxで使用する「vi」の操作方法について解説します。

「vi」は、Linuxで標準的なエディタです。テキストファイルの編集に使いますので、操作ができるようになることが必要です。
「vi」を使ってログファイルを見たり、設定ファイルを編集したりします。
ちなみに、「vim」という「vi」の拡張版がありますが、vimは、viの機能を継承しつつ、多くの機能が追加されています。
基本となる操作については、どちらも共通です。

vi操作の簡易まとめ

解説は後述し、最初にまとめを記載します。

・viでファイルを開くvi ファイル名

・viの「挿入モード」と「コマンドモード」
コマンドモード(挿入モードからコマンドモードに切り替わる) ESC

挿入モード(コマンドモードから挿入モードに切り替わる)
「i」 カーソル位置の前に文字を挿入
「a」 カーソル位置の後に文字を挿入
「o」 カーソル下の行に新しい行を作成して挿入
「O」 カーソル上の行に新しい行を作成して挿入 

・viの終了、保存方法
コマンドモードで実施
「:q!」 保存せず終了 
「:wq!」 保存して終了 

・カーソル移動
コマンドモードで実施
1文字ずつ移動
「h」: 左 「j」: 下 「k」: 上 「l」:

「0」 行頭に移動 
「$」 行末に移動 
「Ctrl+f」 画面を1ページ下 
「Ctrl+b」 画面を1ページ上 
「G」(shift+g) ファイルの最後
「gg」 ファイルの先頭

・テキスト削除
「x」 カーソル下の文字を削除
「dd」 カーソル下の行を削除
「dw」 カーソル下の単語を削除

・検索
「/ 検索文字列」 前方検索
「?検索文字列」 後方検索

・置換
「:%s/検索文字列/置換文字列/g」 全文置換

vi操作 「viでファイルを開く」

viを使うには、コマンドラインから、「vi ファイル名」を入力することで、ファイルをviで開きます。

現在いるディレクトリで上記で指定したファイルがある場合は、そのファイルを開きます。
現在いるディレクトリで上記で指定したファイルがない場合は、新規で作られます。(保存が必要)

vi操作 「モードの変更」

viには、2つのモードがあり、「挿入モード」「コマンドモード」があります。
最初にファイルを開いた時点では、「コマンドモードです。」

その状態で、下記のキーを打つと「挿入モード」に戻ります。
ほとんどの場合、「i」で切り替えます。Insertのiと覚えるとよいと思います。

i カーソル位置の前に文字を挿入
a カーソル位置の後に文字を挿入
o カーソル下の行に新しい行を作成して挿入
O カーソル上の行に新しい行を作成して挿入 

「挿入モード」から「コマンドモード」に戻るには「esc」キーを打ちます。

viでファイルを編集する場合は、「コマンドモード」と「挿入モード」を繰り返します。
キーボードの「i」と「esc」を繰り返し押すことになります。

ファイルの中身を見るだけなら、「コマンドモード」だけで問題ありません。

vi操作 「viの終了、保存」

viでファイルの閲覧を終了する場合は、コマンドモードで、「:q!」を入力します。
仮に現在、コマンドモードでもいったん「ESC」を押して、「:q!」を打てば確実です。

「:q!」で終了した場合は、仮に何か編集した場合も保存されません。

viで編集したファイルを保存して終了する場合は、コマンドモードに戻り、「:wq!」です。
viを開いたまま保存する場合は、「:w」です。

vi操作 カーソル移動

viでファイルを開き、ファイル内を移動するのは下記のキーになります。

現在は、ほとんどの場合、キーボードの矢印でも動きますが、基本のカーソル移動は下記になります。
下記はコマンドモード(「escを押した状態」)で有効です。

h 左へ移動
j 下へ移動
k 上へ移動
l 右へ移動

(補足)
hjklはキーボードで横並びになっており、hから順番に覚えるとよいと思います。
hを始まりに、さかのうえみぎ→さ(左)か(下)のうえ(上)みぎ(右)→坂の上を右

カーソル移動はほかにもたくさんありますが、下記は一例です。
0 行頭に移動
$ 行末に移動

Ctrl+f 画面を1ページ下へスクロールします。つまり、次のページに移動します。
Ctrl+b 画面を1ページ上へスクロールします。つまり、前のページに移動します

G ファイルの最後へ移動します(shiftキーを押してgキーです。)
gg ファイルの先頭へ移動します

私は、よくログファイルを見るので、最新のログが末尾に記載されているので、
「Ctrl+f」と「G」で最終行に行って、下から見返す操作が多いです。

viの操作 「検索や文字削除、置換」

続いては、編集方法です。

文字や行削除方法です。
こちらもいったん、コマンドモードになってから行います。

・テキスト削除
x カーソル下の文字を削除
dd カーソル下の行を削除
dw カーソル下の単語を削除

・検索
/検索文字列  前方検索
?検索文字列  後方検索

置換
:%s/検索文字列/置換文字列/g 全文置換

私がよく使うのは、「x」と「/」です。

まとめ

viはとっつきにくいところがありますが、基本的には、コマンドモードと挿入モードを意識して、
ファイルの中で移動し、入力、削除ができ、最後に保存ができれば基本操作としては問題ありません。

viを覚えると通常のコマンドラインでviモードにできて、入力が楽になります。(set -o vi)

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。