viはUnixベースのシステムで非常に一般的なテキストエディタであり、Linuxでも広く使用されています。初見の方にとっては操作が少し難しく感じるかもしれませんが、その高度な機能と柔軟性で多くのユーザーに支持されています。
更に、vim (Vi IMproved)という viの強化版もあります。より多くの機能とユーザーフレンドリーなインターフェースを持っていると言われています。
テキストエディタとして、他にも、nano, emacs, gedit, kate など、様々なエディタがLinux環境で利用可能ですが、この記事では、古くから使われている伝統的なエディタである「vi」の基本的な使い方を解説しています。
viを起動する方法
viを起動するには、まず、LinuxやUnixベースのシステムでターミナルまたはコンソールを起動し、ターミナルに
vi [ファイル名]
と入力します。ここで「[ファイル名]」は編集したいファイルの名前に置き換えます。
例: vi example.txt と入力すると、example.txtという名前のファイルをviで開きます。
指定したファイルが存在しない場合、新しくその名前のファイルが作成され、VIが起動されます。編集後に保存することで、新しいファイルとしてその内容が保存されます。
viには2つのモードがある
viには二つのモードがあります。
通常モードと挿入モードです。
通常モード (Normal Mode)
- 通常モードの主な機能: テキストの移動、コピー、ペースト、削除、検索などのテキスト操作が可能。
- 通常モードの起動方法: vi を開始すると、デフォルトでこのモードでエディタが起動します。
- 通常モードの特徴:
- カーソル移動には通常の矢印キー以外に h, j, k, l などのキーも使用される。
- テキストを削除 (d), コピー (y), ペースト (p) などのコマンドを使用することができる。
- (/) キーを使用してテキストの検索が可能。
挿入モード (Insert Mode)
- 挿入モードの主な機能: テキストの挿入や編集。
- 挿入モードの起動方法: 通常モードで以下のキーを使用。
- i: カーソル位置の前にテキストを挿入。
- a: カーソル位置の後ろにテキストを挿入。
- o: カーソル位置の次の行に新しい行を追加してテキストを挿入。
- 挿入モードの特徴:
- このモードでは、キーボードの任意のキーを押すと、そのキャラクターがドキュメントに直接入力される。
- コマンドは認識されない。テキストの入力や編集のみが可能。
通常モードと挿入モードの切り替え
- 通常モードから挿入モードに切り替えるには、i, a, o のいずれかのキーを使用します。
- 挿入モードから通常モードに戻るには、Esc キーを押します。
vi や vim は、これらの2つのモードを効果的に切り替えながら、テキストの編集や操作を行うことが特徴となっています。慣れるまで少し時間がかかるかもしれませんが、一旦使いこなすと、非常に効率的にテキスト編集が行えるようになります。
viでファイルを操作する基本的なコマンド
通常モードでの操作が必要になりますが、以下がファイルを操作する基本的なコマンドです。
:w : ファイルを保存する。
:q : viを終了する。
:wq or ZZ : ファイルを保存してからviを終了する。
:q! : 保存せずにviを終了する。
冒頭の「:」を忘れないでください。初心者はそれを忘れる結果、つまずくことが多いようです。
viでテキスト内容を操作する基本的なコマンド
同じく、通常モードでの操作が必要になりますが、以下がテキストを操作する基本的なコマンドです。
yy : 現在の行をコピーする。
dd : 現在の行を削除する。
p : カーソルの下にコピーまたは削除した内容をペーストする。
u : 直前の操作を元に戻す。
/文字列 : 文字列を検索する。
viでは、コピー(Copy)ではなくヤンク(yank)なので、yが使われます。
viでカーソルを移動させる基本的なコマンド
同じく、通常モードでの操作が必要になりますが、以下がカーソルを移動させる基本的なコマンドです。
h : 左に移動
j : 下に移動
k : 上に移動
l : 右に移動
G : ファイルの最後の行に移動
gg : ファイルの最初の行に移動
:$ : ファイルの最後の行に移動
1.冒頭の「:」を忘れずに
2.大文字/小文字を切り替えるより「Shift」を活用すること
viで「すべて選択」してからコピーや削除をする方法は?
Windowsユーザであれば、右クリックないし「Ctrl+A」でテキストを全て選択してから、削除もしくはコピー(Ctrl+C)という直感的な操作に慣れています。一方、テキストの編集には色々な方法があるわけですが、その中でも特にUnix系OSでよく使われるviやvimは、初めての人には少々取っつきにくい印象を受けるかもしれません。
vi や vim には、他のGUIベースのエディタのような「すべて選択」の機能はありませんが、全てのテキストを選択して何かの操作を行いたい場合の手順を以下に示します。
- すべて選択する方法:
- 通常モードで、ggを押してドキュメントの最初に移動します。
- VGを押すと、ファイルの最初から最後までが選択されます。
- 選択したテキストをコピーする:
- 選択された範囲をコピーするには、y (yank)を押します。
- 選択したテキストを削除する:
- 選択された範囲を削除するには、dを押します。
- コピーしたテキストをペーストする:
- 通常モードで、ペーストしたい位置にカーソルを移動します。
- pを押すとコピーしたテキストがカーソルの後ろに挿入されます。
これらの手順を覚えておくと、viやvimでも、他のテキストエディタと同様の操作感を得られるようになります。もちろん、これらは基本的な操作に過ぎませんので、さらなる高度な操作を学ぶことで、viやvimの真のパワーを体感することができるでしょう。
viで「行」もしくは「指定の文字」を選択する方法
先のは「すべてを選択」してから、コピーや削除の方法になりますが、「すべて」ではなく、行、もしくは指定の文字だけを選択する手順を以下に示します。
1. 行を選択する方法:
- 通常モードで、選択したい行にカーソルを置きます。
- V を押します。これで、カーソルがある行全体が選択されます。
- カーソルキーやj、kなどを使って、複数行を選択することもできます。
2. 指定の文字を選択する方法:
- 通常モードで、選択を開始したい文字の位置にカーソルを置きます。
- v を押します。これでビジュアルモードが開始されます。
- カーソルキーやj、kなどを使って、文字や行を選択します。
viのその他の役に立つ操作
基本的に、以上の操作方法を一通りマスターすれば、viを自由自在に問題なく操作することができますが、以下では、
1.文字列の置き換え
2.行番号の表示/非表示
3.特定の行に移動
の操作方法をご案内します。
文字列の置き換え
ファイル内の特定の文字列を一括で置き換え: :%s/old/new/g
置き換える際に確認を受ける場合: :%s/old/new/gc
行番号の表示/非表示
行番号を表示するには: :set number
行番号を非表示にするには: :set nonumber
特定の行に移動
例えば、10行目に移動する場合は: 10G または :10
終わりに~
Linuxには多くのテキストエディタがあり、最も一般的に良く使われるのが「vi」、「vim」や「nano」です。
Linuxを含むUnixベースのシステムに慣れているユーザであれば、馴染みのあるツールであり、使い方に関しても抵抗感はありませんが、WindowsやMac iOS(Apple)ユーザ、とりわけGUIに慣れているユーザですと、最初はどうしても取っつきにくいと感じることでしょう。
僕自身はDOS時代からのユーザであり、ひと昔はファイルの編集もCLI(CUI)でしたが、30年間にわたりGUIに慣れすぎたせいか、AWS(AmazonWebService)を使い始め、Linuxを操作する必要性が出てきてからも、最初もやはり「vi」を。。。。
そうなると、僕は代替方法として、Linuxサーバ上のファイルを編集する時に、Windowsで使い慣れているEditorで編集してからサーバへFTPアップロードするのですが、フォルダ権限の問題やエンコードの問題などもさることながら、編集・保存・アップロードなどの手間を含め、結構面倒くさかったりします。
結局、直接にviを使った編集のほうが効率的なので、viの使い方を学びながら、初心者でもviを基本的な操作がすぐできるように分かりやすくまとめてみました。


コメント