viの印象
viと聞くと、どんなイメージでしょうか?
使いやすい!最高!とか、いやEmacsの方が、、という方は対象にしておりませんのでより詳しいページをごらんください。
どちらかというと、何をしているのかわからない。できれば触りたくないという印象をお持ちの方向けです。
そうした方の場合、まずviを使う場面は、あるファイルをちょっとだけ編集したいというときではないでしょうか。たった1文字、1行書き加えたい。だけどviはよくわからない。そんな時に思いだしていただきたいことを最小限で書いてみます。
viでファイルを開く
コマンドライン上で
vi ファイル名
とすることでviがファイルを開いた状態で起動します。指定したファイルがなければ新規のファイルとなります。たまに何かの設定ファイルを開いたつもりなのにまっさらな画面が表示され、保存しても設定が変わらないときがあります。それはファイル名かディレクトリ名を間違えている可能性が高いです。
ディレクトリ名もファイル名も何文字か入力しTABを押すと補完してくれます。補完されなかった場合は入力した文字で始まるファイルなどが複数あるということです。その状態でTABをもう一度押すと該当する一覧が表示されます。
こうしてviを起動します。
viのモード
ここがややこしいところですが、viはコマンドモードと挿入モードがあります。
起動時はコマンドモードになっています。ここでキーボードから色々なコマンドを入力することができますが、最低限覚えておけば良いのは i、w、q、ESCの4つだけです。
モードの切り替えに使うのは
iはコマンドモードから挿入モードへ
ESCはコマンドモードへ映ります。
今、自分がどちらのモードなのかわからない場合はとりあえずESCを連打しましょう。何回押してもコマンドモードになってくれます。
カーソルの移動
viのカーソル移動方法について調べていくとたくさんのコマンドが出てきます。検索や行へジャンプなどありますが、それはまたで大丈夫です。今のviはカーソルが使えます!キーボードの上下左右カーソルでスクロールしながら変更したい箇所をさがしましょう。
編集
変更したい箇所が見つかったら、iを押します。画面下部に
-- INSERT --
や挿入など表示されます。そうするともうなんでもできます。さらにカーソル移動するなり、BACKSPACEで1文字削除、RETURNで改行の挿入なりなんでもできます。必要な箇所を編集しましょう。
保存して終了
作業が完了したら保存して終了です。これを行うときには一旦コマンドモードに入ります。
ESCを押して:wq
と入力します。最初のESCを押した時点で画面下部の -- INSERT --は消え、
:wq
と入力したものがそのまま表示されます。そこでENTERを押します。そうするとうまくいけばもとのシェルの画面にもどります。
保存できない場合
開いているファイルに書き込み権限がなく保存できない場合があります。一旦終了しましょう。1文字も書き換えていなければ終了はコマンドモードで:qを押してENTERすると終了します。しかしどこかを編集していると変更しているのに保存せずに終了するのかと怒られます。
そんな時は:q!と入力しENTERします。そうすると保存せずに終了しシェルに戻れます。
その後書き込み権限を付加するなり
sudo vi ファイル名
と実行し管理者権限で実行するなりしてください。
まとめ
これでひとまず
1. viでファイルを開く
vi ファイル名
2. カーソル移動する
キーボードのカーソル使う
3. 編集する
i
4. 保存して終了
ESC:wqENTER
まで完了するはずです。
おまけ
しかしやはり、カーソル移動について次のコマンドぐらい覚えておくと便利だと思います。
コマンドモードで
:数字ENTER 指定した数字の行にジャンプ
:文字ENTER 指定した文字の検索
n次の検索
これができると、テキストなどを見ていてこの設定を書き換えというとき、すぐ該当箇所を編集できます。
viはとても高機能なエディタでこれ以外にもたくさんのコマンドがあります。カーソルで移動などというとviを使いこなしておられる方からは怒られそうです。しかし、「viをマスターしたい」のではなく、今「このファイルを編集したい」という方の参考になれたらと思います。