vi エディタは、すべての Unix および Linux システムで標準のエディタであり、最新のテキストエディタと同等の強力さを持っています。ここでは、その使用方法と一部のコマンドについて簡単に説明します。
Unix および Linux システムのどのバージョンでも、vi エディタは完全に同じですので、他の vi の紹介場所でもさらに詳しく学ぶことができます。
Vi は Linux で最も基本的なテキストエディタであり、それを学ぶと Linux の世界でスムーズに操作できるようになります。
- vi の基本的な概念
基本的に、vi は 3 つのモードに分かれます。コマンドモード(command mode)、挿入モード(Insert mode)、およびラストラインモード(last line mode)です。各モードの機能は以下の通りです:
- コマンドモード(command mode)
画面上のカーソルの移動、文字、単語、または行の削除、特定の範囲の移動やコピー、および Insert モードへの移行やラストラインモードへの移行ができます。
- 挿入モード(Insert mode)
挿入モードでは、テキストの入力ができます。"ESC" キーを押すとコマンドモードに戻ります。
- ラストラインモード(last line mode)
ファイルの保存や vi の終了、または編集環境の設定などができます。ただし、通常は vi を使用する際には、ラストラインモード(last line mode)をコマンドモード(command mode)に含めることがあります。
- vi の基本操作
a) vi に入る
システムプロンプトで vi とファイル名を入力すると、vi のフルスクリーン編集画面に入ります:$ vi myfile ただし、vi に入った後は「コマンドモード(command mode)」になっていることに注意してください。テキストを入力するには、「挿入モード(Insert mode)」に切り替える必要があります。vi を初めて使用する人は、カーソルキーを使ってカーソルを移動しようとして、コンピュータが鳴り続けて自分自身をイライラさせることがありますので、vi に入った後は、まずは動かさずに「挿入モード(Insert mode)」に切り替えましょう!
b) 挿入モード(Insert mode)に切り替えてファイルを編集する
「コマンドモード(command mode)」で「i」キーを押すと、「挿入モード(Insert mode)」に入ることができます。この時点でテキストの入力を開始できます。
c) Insert モードの切り替え
現在「挿入モード(Insert mode)」にいる場合、テキストの入力しかできません。もし誤って文字を入力した場合、カーソルキーを使用して後ろに移動し、その文字を削除するには、「ESC」キーを押して「コマンドモード(command mode)」に戻る必要があります。
d) vi の終了とファイルの保存
「コマンドモード(command mode)」で「:」(コロン)キーを押すと、「Last line mode」に入ります。例えば:
w filename(「w filename」と入力すると、記事を指定したファイル名 filename で保存します)
wq(「wq」と入力すると、保存して vi を終了します)
q!(「q!」と入力すると、保存せずに強制的に vi を終了します)
- コマンドモード(command mode)の機能キー
- 挿入モード
「i」キーを押して「挿入モード(insert mode)」に切り替えると、カーソルの現在位置からファイルを入力できます。 「a」キーを押して「挿入モード(insert mode)」に切り替えると、現在のカーソル位置の次の位置から入力できます。 「o」キーを押して「挿入モード(insert mode)」に切り替えると、新しい行を挿入し、行の先頭から入力できます。
- 挿入モードからコマンドモードへの切り替え
「ESC」キーを押します。
- カーソルの移動
vi では、キーボードのカーソルキーを使用して上下左右に移動できますが、正式な vi では、小文字の英字「h」、「j」、「k」、「l」を使用してカーソルを左、下、上、右に 1 つずつ移動します。 「ctrl」+「b」:画面を 1 ページ後ろにスクロールします。 「ctrl」+「f」:画面を 1 ページ前にスクロールします。 「ctrl」+「u」:画面を半ページ後ろにスクロールします。 「ctrl」+「d」:画面を半ページ前にスクロールします。 数字「0」:記事の先頭に移動します。 「G」:記事の最後に移動します。 「$」:カーソルがある行の末尾に移動します。 「^」:カーソルがある行の先頭に移動します。 「w」:次の単語の先頭にカーソルを移動します。 「e」:次の単語の末尾にカーソルを移動します。 「b」:前の単語の先頭にカーソルを移動します。 「#l」:カーソルをその行の #番目の位置に移動します。例:5l、56l など。
- 文字の削除
「x」:カーソルの位置の後ろの文字を 1 文字ずつ削除します。 「#x」:例えば、「6x」はカーソルの位置から後ろの 6 文字を削除します。 「X」:大文字の X を押すと、カーソルの位置の前の文字を 1 文字ずつ削除します。 「#X」:例えば、「20X」はカーソルの位置から前の 20 文字を削除します。 「dd」:カーソルがある行を削除します。 「#dd」:カーソルがある行から #行を削除します。
- コピー
「yw」:カーソルの位置から単語の末尾までの文字をバッファにコピーします。 「#yw」:# 個の単語をバッファにコピーします。 「yy」:カーソルがある行をバッファにコピーします。 「#yy」:例えば、「6yy」はカーソルのある行から下に 6 行のテキストをコピーします。 「p」:バッファ内の文字をカーソルの位置に貼り付けます。注意:「y」に関連するすべてのコピーのコマンドは、「p」と組み合わせて使用する必要があります。
- 置換
「r」:カーソルの位置の文字を置換します。 「R」:カーソルから ESC キーが押されるまでの間、カーソルの位置から置換します。
- 前の操作を元に戻す
「u」:誤って実行したコマンドを元に戻すために「u」を押すことができます。複数回「u」を押すと、複数回の元に戻しを実行できます。
- 変更
「cw」:カーソルの位置から単語の末尾までの単語を変更します。 「c#w」:例えば、「c3w」は 3 つの単語を変更します。
- 指定した行にジャンプ
「ctrl」+「g」:カーソルのある行の行番号を表示します。 「#G」:例えば、「15G」はカーソルを記事の 15 行目の行頭に移動します。
- Last line mode のコマンドの概要
「last line mode」を使用する前に、「ESC」キーを押して「command mode」にいることを確認してから、「:」(コロン)を押して「last line mode」に入ります。
A) 行番号の表示
「set nu」:「set nu」と入力すると、ファイルの各行の前に行番号が表示されます。
B) ファイル内の特定の行に移動
「#」:コロンの後に数字を入力し、Enter キーを押すと、その行に移動します。たとえば、数字 15 を入力して Enter キーを押すと、記事の 15 行に移動します。
C) 文字の検索
「/ キーワード」:最初に「/」キーを押し、検索したい文字を入力します。最初に見つかったキーワードが望んでいるものではない場合、続けて「n」を押すと、望んでいるキーワードが見つかるまで後方に検索を続けます。 「? キーワード」:最初に「?」キーを押し、検索したい文字を入力します。最初に見つかったキーワードが望んでいるものではない場合、続けて「n」を押すと、望んでいるキーワードが見つかるまで前方に検索を続けます。
D) ファイルの保存
「w」:コロンに「w」と入力すると、ファイルが保存されます。
E) vi の終了
「q」:「q」を押すと終了します。vi から抜けることができない場合は、「q」の後に「!」を付けて強制的に終了することができます。「qw」:一般的には、「w」と一緒に使用することをお勧めします。これにより、終了時にファイルを保存することができます。
-
vi コマンドリスト
-
以下の表は、コマンドモードでのいくつかのキーの機能を示しています: h:カーソルを 1 文字左に移動します。 l:カーソルを 1 文字右に移動します。 k:カーソルを 1 行上に移動します。 j:カーソルを 1 行下に移動します。 ^:カーソルを行の先頭に移動します。 0:カーソルを記事の先頭に移動します。 G:カーソルを記事の最後に移動します。 $:カーソルを行の末尾に移動します。 Ctrl+f:1 ページ前にスクロールします。 Ctrl+b:1 ページ後ろにスクロールします。 Ctrl+d:半ページ前にスクロールします。 Ctrl+u:半ページ後ろにスクロールします。 i:カーソルの位置に文字を挿入します。 a:カーソルの位置の次の文字から追加します。 o:新しい行を挿入し、行の先頭から入力します。 ESC:入力モードからコマンドモードに戻ります。 x:カーソルの後ろの文字を削除します。 #x:例:「6x」はカーソルの位置から後ろの 6 文字を削除します。 X:カーソルの前の文字を削除します。 #X:例:「20X」はカーソルの位置から前の 20 文字を削除します。 dd:カーソルのある行を削除します。 #dd:カーソルのある行から #行を削除します。 yw:カーソルの位置から単語の末尾までの文字をコピーします。 #yw:# 個の単語をコピーします。 yy:カーソルのある行をコピーします。 #yy:例:「6yy」はカーソルのある行から下に 6 行のテキストをコピーします。 p:バッファ内の文字をカーソルの位置に貼り付けます。 u:操作を取り消します。 cw:カーソルの位置から単語の末尾までの単語を変更します。 #cw:例:「c3w」は 3 つの単語を変更します。
-
以下の表は、行モードでのいくつかの指示を示しています: w filename:編集中のファイルを filename という名前で保存します。 wq filename:編集中のファイルを filename という名前で保存し、vi を終了します。 q!:すべての変更を破棄し、vi を終了します。 set nu:行番号を表示します。 / または?:検索します。/ の後に検索する内容を入力します。 n:/ または?と一緒に使用し、検索したいキーワードが見つからない場合、n を押して後方(/ と組み合わせて使用)または前方(? と組み合わせて使用)に続けて検索します。見つかるまで続けます。
vi を初めて使用する場合、次の点に注意してください:
- ファイルを vi で開いた後、まず「コマンドモード(command mode)」になっていることに注意してください。テキストを入力するには、「挿入モード(Insert mode)」に切り替える必要があります。
切り替え方法:「コマンドモード(command mode)」で「i」キーを押すと、「挿入モード(Insert mode)」に入ることができます。この時点でテキストの入力を開始できます。
-
編集が完了したら、ファイルを保存するために挿入モードからコマンドモードに切り替える必要があります。切り替え方法:「ESC」キーを押します。
-
ファイルを保存して終了する:コマンドモードでと入力します!(wq の前の:を忘れないでください)