最終更新日 2005/06/16
viエディタ
GNU/Linuxのエディタ
viとは
viのモード
viの起動・終了
viのモード切り換え
viのカーソル移動コマンド
viの文字列検索・置き換えコマンド
viの削除・ヤンク&ペーストコマンドGNU/Linuxのエディタ
GNU/Linuxを利用する際に、必ず使用するものはテキストエディタです。システムの設定・サーバの構築・設定等を行う場合は、テキストファイルをエディタで開き設定をします。
エディタを使うことができなければ、GNU/Linuxでサーバ構築等を行うのは(おそらく)不可能です。
GNU/Linuxでよく利用されるエディタは、「vi」「Emacs」です。どちらも大変優れたエディタであり、同じぐらい人気があります。
Emacsはエディタだけの機能だけではなく、プログラム環境やブラウザとしても利用できます。ゆえに"環境"と呼ばれます。
一方、viは非常にシンプルなエディタで、エディタ機能以外はありません。
日本語を使用する場合はあまり適しませんが、サーバの設定ファイルの書き換えや、緊急時のエディタとしてはviがシンプルで適しています。
viとは
viは、ビル・ジョイ氏が開発したフルスクリーンエディタです。viは一般的に使用されるエディタと違い、「モード」が存在するモードエディタになります。
入力する際の「インサートモード」と、カーソルの移動やファイルの保存などで使用する「コマンドモード」に分かれています。
それぞれモードを切り替えながら編集していきます。また、ホームポジションから、ほとんど手を動かすことなく編集することが可能です。
最初は、かなり癖がありますので難しいかもしれませんが、慣れればこれほど使いやすいエディタはありません。最小のキー操作ですばやく編集することができるようになります。これがviの最大の魅力です。
viのモード
viには、「コマンドモード」と「インサートモード」の2つのモードが存在します。正確には区分すると「viモード」と「exモード」もありますが、ここでは上の2つのモードで説明をします。
コマンドモードは、viでコマンド(ファイル保存などのコマンド)を入力する際に利用します。
ファイルの保存やカーソルの移動・文字の削除・切り取り・コピーなどを行う場合は「コマンドモード」で行います。
インサートモードは、文字を入力する際に利用します。文字入力専用のモードになります。
インサートモードで文字を入力し、コマンドモードでカーソルの移動や文字の削除・保存の保存などを行います。
2つのモードを往復しながら、テキストファイル等を編集していくとこになります。
コマンドモードからインサートモードに移行する場合は、キーボードの「i」(その他にも存在します)を押すます。
また、インサートモードからコマンドモードに戻る場合は、「Esc」キーを押します。
viのモード
| モード | 内容 |
| インサートモード | 文字の入力(「Esc」キーでコマンドモードへ移動する) |
| コマンドモード | ファイルの保存・カーソルの移動・文字の削除・コピー・貼り付け等 |
viの起動と終了
viでもEmacsでもそうですがファイルを開く場合は原則、最初に名前を付けて開きます。あとで名前を付けて保存することも可能です。viでファイルを開く場合は、「vi <ファイル名>」と入力します。編集後上書き保存する場合、「:wq」と入力します。
編集内容を保存せず終了する場合は、コマンドモードで「:q!」と入力します。
起動・終了コマンド
| コマンド | 説明 |
| vi <ファイル> | ファイルを開く |
| :w | 現在編集しているファイルを保存(viは終了しない) |
| :wq | 現在編集しているファイルを保存(viも同時に終了) |
| :q! | 現在編集しているファイルを保存せずに終了(強制終了) |
| :q | 現在編集しているファイルを保存せずに終了(ファイル内容が変更されている場合は確認する) |
| :w <ファイル名> | 現在編集しているファイルに名前を付けて保存する |
| ZZ | 現在編集しているファイルを保存(viも同時に終了) |
| :e! | 編集した内容は破棄して、最後に保存した状態を再読み込み |
viのモード切換え
viのモード切り換えで、インサートモードからコマンドモードへの移行は、「Esc」キーで行います。コマンドモードからインサートモードへの切り替えは、「i」キーなどいくつかあります。(動きが異なる)
入力モードへの移行コマンド
| コマンド | 説明 |
| i | カーソルの位置に文字を入力 |
| a | カーソルの右側に文字を入力 |
| I | 行頭に文字を入力 |
| A | 行末に文字を入力 |
| o | 現在行の次に新たな行を挿入して文字を入力 |
| O | 現在行の前に新たな行を挿入して文字を入力 |
viのカーソル移動コマンド
viでのカーソルの移動は、右手のホームポジションの「h」「j」「k」「l」キーを使います。それぞれ「左」「下」「上」「右」に割り当てられています。その他にさまざまな操作がポームポジション上で実行できます。
最小のキー操作で目的の場所にカーソルを移動することが可能です。この"カーソル飛ばし"はviの魅力の1つです。
カーソル移動系コマンド
| コマンド | 説明 |
| h | カーソルを左に移動 |
| j | カーソルを下に移動 |
| k | カーソルを上に移動 |
| l | カーソルを右に移動 |
| b | 現在の単語の最初の文字へ移動 |
| B | 現在の単語の最初の文字へ移動(句読点は認識しない) |
| e | 現在の単語の最後の文字へ移動 |
| E | 現在の単語の最後の文字へ移動(句読点は認識しない) |
| w | 次の単語の先頭に移動 |
| W | 次の単語の先頭に移動(句読点は認識しない) |
| ^ | 行の先頭に移動 |
| $ | 行の最後に移動 |
| gg | 先頭の行に移動 |
| G | 最後の行に移動 |
| f<文字> | 現在の行のカーソル位置より後ろの文字に移動 |
| F<文字> | 現在の行のカーソル位置より前の文字に移動 |
| + | 一行下の先頭の文字へ移動 |
| - | 一行上の先頭の文字へ移動 |
viの文字列検索・置き換えコマンド
viで文字列を検索する場合は、コマンドモードで「/文字列」と入力するとカーソルのある行から下へ検索します。カーソルのある行から上を検索する場合は「?文字列」と入力します。次の文字列を検索する場合は、「n」を、戻る場合は「N」を押します。
指定の行に移動するためには、「:行番号」と入力します。また、文字列の置き換えは、「:s」コマンドを利用します。
書式は、「:s/<置き換える文字列>/<置き換え後の文字列>/<オプション>」になります。
オプションには、すべて置き換える「g」と確認メッセージを表示する「c」があります。
文字列検索・置き換えコマンド
| コマンド | 説明 |
| /<文字列> | カーソルの位置から下へ<文字列>を検索 |
| ?<文字列> | カーソルの位置から上へ<文字列>を検索 |
| :<行番号> | 指定した<行番号>に移動 |
viの削除・ヤンク&ペーストコマンド
viで文字を削除する場合は「x」、ヤンク(viではコピーのことをヤンクという)は「y」、ペーストは「p」を押します削除・ヤンク&ペーストコマンド
| コマンド | 説明 |
| x | カーソル上の文字を削除(delete) |
| X | カーソルの手前の文字を削除(Backspace) |
| dd | カーソルのある行を削除 |
| D | カーソルの位置から行末までを削除く |
| yy | 現在の行を一行ヤンク |
| y<行数<y | カーソルのある位置から<行数<間ヤンク |
| p | カーソルの後の行に挿入 |
| P | カーソルの前の行に挿入 |
Top