読者の多くは,プログラミングに利用するお気に入りの「エディタ」をお持ちではないでしょうか。今回は,UNIX系OSの標準的なエディタとして長年使われ続けているviエディタについて取り上げます。もちろん,Linuxにおいても,次に述べるように“vi系列”のテキスト・エディタを利用できます。
viエディタの概要
LinuxをはじめとするUNIX系OSでは,viが標準的なテキスト・エディタとなっています。オリジナルの「vi(VIsual editor)」は,米Sun Microsystemsの共同創業者の一人であるビル・ジョイ(Bill Joy)氏によって30年以上前に開発されたのが始まりですが,現在ではviの上位互換である「Vim(Vi IMproved)」が多くのLinuxディストリビューションで採用されています。vi/Vim(以後はまとめてviエディタと記述します)には,シンタックスハイライトやコード補完,コンパイル&エラージャンプなどをはじめ,プログラマ向けの機能も豊富に備わっています。
GUIが一般的でない時代に開発されたviエディタは,マウスやメニューを一切使うことなく編集作業が可能です。独特の操作性があるものの,慣れると快適に扱うことができるエディタです。逆に言えば,慣れるまでは扱いづらい側面があります。
複数のモードを切り替えながら作業を進める
vi初心者がまず戸惑うのは,viエディタには複数のモード(表1)があることでしょう。これは一般的なWindowsのエディタにはない概念です。viエディタでは,それらのモードを切り替えながら作業を進めていきます。
モード | 説明 |
---|---|
コマンドモード | 編集作業やカーソル移動などをキー操作で行う |
挿入モード | キーボードから入力された文字が挿入される |
コマンドラインモード | 文字列検索や置換,ファイル操作を行う |
一般的なエディタでは,キーボードから入力された文字がそのままカーソル位置に挿入されます。しかしviエディタでは挿入モードに限られます。デフォルト(初期設定)のモードであるコマンドモード(通常モード,ノーマルモードとも言います)では,例えば「p」というキーを押すとペースト(貼り付け)を,「dd」と入力すると1行カット(削除)という操作になります。文字を入力するには,コマンドモード上で,挿入モードへ切り替えるキー操作(コマンド)を実行しなければなりません。
viエディタを使い始めてしばらくは,こうした特徴はとても奇異に感じられるでしょう。慣れないうちは操作にとても時間がかかったり,誤った操作で訳がわからなくなったりすることも多いと思います。しかし慣れてくると,とてもスピーディに操作ができるのです。
さて,Ubuntu(Ubuntu 8.04 LTS 日本語ローカライズド)のデフォルト設定では,viエディタの周辺機能がインストールされていないことがあります。viエディタが起動する場合でも,周辺機能は含まれておらず,後述する自動補完機能などが使えない場合があります。そのため,図1のコマンドを実行して,必要なパッケージをあらかじめインストールしておいてください(インターネットにつながっている必要があります)。
$ sudo apt-get install vim-full
viエディタの基本操作(起動,終了,モード切替)
さっそくviエディタを使ってみましょう。最初に起動したり,終了したり,先に述べたモードを切り替える方法を説明します。
起動,終了,モード切替の方法
viエディタを起動するには,[アプリケーション]メニューから[アクセサリ]-[端末]を選んで端末を表示し,vi(もしくはvim)と入力します(図2)。
$ vi
viあるいはvimのいずれを入力したときにも,VIMが起動します(図3)。
viエディタを終了するには,「:q」と入力し,[Enter]キーを押します。「:」を入力した途端,画面最下行にカーソルが移動します(コマンドラインモード)。この行をメッセージラインと呼びます。通常は様々な情報が表示されますが,コマンドラインモードでの入力もメッセージラインで行われます。