Linuxを使い始める際の障害となりがちな「vi」について、とりあえず使えるために必要な情報をまとめてみました。
慣れてしまえば「vi」はそこまで難しくないので、まずは触っておぼえていきましょう。
viについて
「vi」はほどんどのLinuxにインストールされているエディタです。
Windowsのメモ帳等と比べると、ちょっと操作方法が特殊で慣れるまでは大変でしょうが、Linuxを使っていく上では避けて通れない通れないと思いますので基本的な使い方は覚えておいたほうが良いでしょう。
とりあえずは基本的な使い方をまとめてみましたので、「vi」はじめの一歩の参考になればとうれしく思います。
まずは、実際に手を動かして慣れていくのが一番なので、気楽にやっていくと良いですよ。
編集モードとコマンドモード
Windowsのメモ帳などのエディタと違って、「vi」には「コマンドモード」と「編集モード」という2つのモードがあって、それぞれのモードを切り替えながら作業を行っていきます。
まずは、それぞれのモードの役割を簡単に説明していきます。
コマンドモード
「vi」起動時の初期モードで、文字入力以外の下記操作はコマンドモードで行います。
- ファイルの保存
- viの終了
- カーソル移動
- コピー・ペースト
- 検索
- 置換
編集モードから移行する場合は「Esc」キーを押下します。
編集モード
文字を入力するモードになります。
コマンドモードから移行は、「a」キーや「i」キー等を押下することで編集モードに移行することが出来ます。
※もし、自分がどのモードにいるのかが分からなくなってしまった場合は、とりあえず「ESC」キーを何度か押下して「コマンドモード」に移行すると良いですよ。
vi はじめの一歩
まずは「vi」はじめの一歩として、実際に「vi」で文字を入力して内容をファイルに保存するまでの流れを説明していきます。
viの起動
新しくファイルを作成する場合や、既存のファイルを編集する場合は下記のようにファイル名を指定して「vi」を起動します。
vi ファイル名
今回は「test.txt」というファイルを新規作成して文字を入力していきます。
$ vi test.txt
「New File」と表示されているので、新しくファイルが作成されるという事がわかります。
※環境によっては「新しいファイル」といったように表示されることもあります。
文字の入力
「vi」が起動しましたら、次は文字を入力していきます。
起動直後は「コマンドモード」にいるため、そのままでは文字を入力することが出来ないので、まずは「a」キーを押下して「編集モード」移行しましょう。
「a」キーを押下すると、「INSERT」と表示されて編集モードに移行したことが分かります。
※環境によっては「挿入」といったように表示されることもあります。
これで、文字を入力することができるようになりましたので、文字を入力してみましょう。
お約束の「Hello World !!」と入力してみました。
みなさんは文字の入力は無事できましたか?
もし、文字が入力できない場合は編集モードに移行しているか確認してみて下さい。
文字の削除
入力をミスした場合は、「Esc」キーを押下してコマンドモードに移行してから「x」キーを押下することでカーソル上の文字を削除することができます。
削除した後に再度文字を入力する場合は、「a」キーを押下し編集モードに移行してから文字入力を再開してください。
ファイルの保存
最後に文字を入力したファイルを保存して、「vi」を終了させていきます。
ファイルを保存して終了させる場合は以下の操作を行います。
- 「Esc」キーを押下して編集モードに移行
- 「:」「w」「q」「!」「Enter」キーの順にを押下
これで、いま入力した文字がファイルに保存され「vi」が終了します。
ここまでの説明で、「vi起動」「文字入力」「ファイルの保存」といった、「vi」最初の一歩の説明はおしまいです。
あとは、「vi」には色々と便利コマンドがたくさんあるので、それを少しずつで良いので覚えていくとどんどんと使いやすくなっていきますよ!
vi コマンドまとめ
とりあえず普段使う機会が多そうなコマンドをまとめてみました。
ほかにも色々便利なコマンドがありますが、まずはこれらのコマンドを覚えてしまいましょう。
新規作成・既存ファイルの編集
キー | 動作内容 |
---|---|
vi ファイル名 | viを起動し指定したファイルを新規作成、または編集を開始 |
ファイルを新規作成する場合、この時点ではまだファイルは作成されておらず、保存を行った時点でファイルは作成されます。
ファイル名を指定せずに「vi」を起動した場合は、ファイル保存時にファイル名を指定する必要があります。
編集モードへの移行
コマンドモードから編集モードへの移行する場合、押下するキーによって文字の入力開始場所が異なってくるので、状況によって使い分けると便利です。
キー | 動作内容 |
---|---|
a | カーソルの右から文字入力開始 |
A | 行の最後から文字入力開始 |
i | カーソルの左から文字入力開始 |
I | 行の最初から文字入力開始 |
o | 一段下に行を挿入して文字入力開始 |
O | 一段上に行を挿入して文字入力開始 |
コマンドモードへの移行
「Esc」キーを押下することでコマンドモードへ移行します。
自分がいるモードが分からなくなったらとりあえず「Esc」キーを連打すれば良いですよ。
文字の削除(コマンドモードで実行)
文字の削除方法にもいくつか種類があります。
キー | 動作内容 |
---|---|
x | カーソル上の文字を削除 |
[n]x | [n]で指定した数だけ、カーソル上の文字から右側を削除 カーソル上の文字を含み5文字削除したい場合は「5x」と入力 |
X | カーソルの左側の文字を削除 |
[n]X | [n]で指定した数だけ、カーソルから左側を削除 カーソルから5文字削除したい場合は「5X」と入力 この場合はカーソル上の文字は削除されない |
dd | 一行削除 |
[n]dd | [n]で指定した行数削除 5行削除したい場合は「5dd」と入力 |
コピー・ペースト(コマンドモードで実行)
キー | 動作内容 |
---|---|
yl | 一文字コピー |
[n]yl | [n]で指定した文字数をコピー 5文字コピーしたい場合は「5yl」と入力 |
yw | 一単語コピー |
[n]yw | [n]で指定した単語数をコピー 5単語コピーしたい場合は「5yw」と入力 |
yy | 一行コピー |
[n]yy | [n]で指定した行数をコピー 5行コピーしたい場合は「5yy」と入力 |
p | 文字・単語のペースト時はカーソルの右側にペースト 行のペーストはカーソルの下の行にペースト |
P | 文字・単語のペースト時はカーソルの左側にペースト カーソルの上の行にペースト |
カーソル移動(コマンドモードで実行)
カーソルの移動方法もたくさんありますが、とりあえずこのくらい覚えておけば何とかなるでしょう。
キー | 動作内容 |
---|---|
h | 左へ移動 | l | 右へ移動 | k | 上へ移動 | j | 下へ移動 |
gg | 最初の行に移動 |
G | 最後の行に移動 |
[n]G | [n]部分で指定した行に移動 10行目に移動したい場合は10Gと入力 |
※最近のviは矢印キーでもカーソルの移動はできたりします。
※さらに、矢印キーでのカーソル移動は編集モードでもできちゃったりします。
検索(コマンドモードで実行)
ログファイルなどの大量に情報が記述されたファイルを扱う場合には絶対必要ですので、これは必ず覚えおきましょう。
キー | 動作内容 |
---|---|
/検索したい文字(Enter) | カーソルより下方向に向かって検索 |
?検索したい文字(Enter) | カーソルより上方向に向かって検索 |
n | 下方向に向かって次の該当文字を検索 |
N | 上方向に向かって次の該当文字を検索 |
保存・終了(コマンドモードで実行)
編集したファイルの保存と終了の方法です。
上書き保存と新しいファイル保存する(別名保存)方法について説明します。
上書き保存
「vi」を起動する際に指定したファイルに、そのまま上書き保存させる方法です。
キー | 動作内容 |
---|---|
:w(Enter) | 内容を上書き保存(viは終了しません) |
:wq!(Enter) | 上書き保存して終了 |
ZZ (大文字です) | 上書き保存して終了 |
新しいファイルに保存(別名で保存)
保存する際に新しいファイル名を指定することで、上書き保存ではなく新しいファイルとしてファイルを保存することが出来ます。
キー | 動作内容 |
---|---|
:w 新規ファイル名(Enter) | 新規ファイルとして保存 |
:wq! 新規ファイル名(Enter) | 新規ファイルとして保存して「vi」を終了 |
[New]と表示されて、新しくファイルが作成されたことが分かります。
保存せずに終了
内容を保存せずに「vi」を終了させる方法です。
キー | 動作内容 |
---|---|
:q!(Enter) | ファイルを保存せずに終了させる |
作業の取り消し(コマンドモードで実行)
間違って文字を削除してしまった場合など作業の取り消し方法です。
キー | 動作内容 |
---|---|
U | 直前の作業を取り消す |
とりあえずはこれぐらい覚えておけば何とかなると思います。
それでは、たのしい「vi」ライフをお過ごしください:-D
コメント