コンテンツにスキップ

Top

vi の使い方

ここではLinuxのコンソールエディタ vi の使い方について述べる。

ただ、vi は扱いづらい。

のでインストールしてよいのであれば emacs とかをインストールして使ったほうが良い。

だが、サーバー管理者以外、勝手にアプリケーションをインストールしてはいけない職場のほうが多いだろう。

viは(おそらくだが)すべてのLinuxにデフォルトで入っているエディタなのでマスターしておいて損はないというかしてないとバヤイことになると思う。

あとvi の上位互換的な奴で vim というのがいるが、正直しらん。

具体的にどのような差があるかは vim を起動後、 :help vi_diff.txt と入力したら差分のドキュメントが表示されるので興味のある人は見たらいい。

コマンドモードとインプットモード

viにはコマンドモードとインプットモードの2つのモードがあり、起動時はコマンドモードである。

コマンドモードはコマンドを入力するモードである。
いろいろコマンドがあるが、一番最初に使うのが i(input) である。iキーを押下するとインプットモードに切り替わる。
コマンドモードに戻るにはESCキーを押下する。
ちなみにiキー以外にも、aキーやoキーによってもインプットモードになるが、まずはi(inputのi)を覚える。

インプットモードは文字を入力する際のモードである。
このモードにしてから文章を入力する。

以下の順番で操作してみよう。

  1. vi コマンドでファイル名を指定してエディタを起動 $ vi hoge.txt

エディタが起動するので、以下の手順で文字を入力しファイル保存する。

  1. iキーを押下してインプットモード →
  2. 全角/半角キーを押下して全角モード →
  3. 日本語を入力 →
  4. ESCキーを押下してコマンドモード →
  5. :wqを押下して保存して終了(wはファイルを保存するコマンド。qは終了するコマンド)

この時、日本語を入力するため全角になっているはずで、コマンドが入力できずに失敗したはずである。
なので、

  1. 全角/半角キーを押下して半角モードに戻してから、:wqを押下して保存して終了

が正しい手順となるが、毎回のことなのでかなり煩わしい。

英語圏というか1バイト文字圏の住民だとこんなことは起きないし使いやすいのだろうが、二バイト文字圏の住民は切り替えのたびにイライラすることになる。

・・・けどまぁ文句たれてもしゃあないので黙ってがんばれ。

カーソル移動

最近のviは上下左右の矢印キーで普通にカーソル移動できる。

昔はわざわざ以下のキーを使って移動していた。

キー 移動
h
j
k
l

キーボードを見ればわかるが、hjklの順に並んでいる。
正直くそみたいだが、昔の人はこれで頑張っていてなれればそのうち違和感なくなる。
起点の h を 「左のh」 と覚えて、残りのキーは何となく頑張ってどうにかする。

行のコピー

行をコピーする場合、マウスでカーソル当ててピーってやってコピペという手もあるが、viにはもっと簡単な方法がある。

コピーしたい行にカーソルを合わせて yy yキーを2連打するとその行がコピーされるので、ペーストしたい先にカーソル移動して、 pキーを押下すれば行がコピーされる。
3行コピーしたい場合は先に数字を打ってからyyとすればいい。具体的には 3yy と打って、 コピペ先で p を打てば3行分コピーされている。

Undo と Redo

Undo(ひとつ前に戻す)は簡単。 uキーを押せばいいだけ。

Redo(ひとつ先に進む)はなぜか Ctrlキー + rキー という、ちょっと意味わからないんですけど、といった使用。

単独のrキーがreplace(置換)に割り当てられているせいなのはわかるが、もうちょっと何とかならんかったんかな、という感じ。

以上!