PR

写真2 vim(vi)の起動画面
[画像のクリックで拡大表示]

表4 vimのモード変更用コマンド
[画像のクリックで拡大表示]

表5 vimの基本的なコマンド
[画像のクリックで拡大表示]

表6 exの基本的なコマンド
[画像のクリックで拡大表示]

写真3 vimでinittabファイルを開いたところ
編集対象のテキストがカラー表示されています。

[画像のクリックで拡大表示]

写真4 vimで.bash_profileファイルを開いたところ
[画像のクリックで拡大表示]

画面エディタのvim

 Fedora Coreでは,画面エディタのviは/usr/bin/vimへのシンボリック・リンクになっています。vimは「vi improved」の省略形で,vi(visual editor)の機能拡張版です。viは,先に紹介したexに画面制御機能を追加したもので,行エディタの機能を色濃く残している画面エディタです*9[拡大表示]。

 vimを起動すると,写真2[拡大表示]のような画面になります。具体的には,シェルのコマンドラインで「vim *10[拡大表示]と入力します)。

端末タイプの見方

 画面エディタは行エディタと異なり,現在使用中の画面(ウインドウ)の“タイプ”が適切に設定されている必要があります。これを端末タイプと言い,環境変数TERMに設定されています。

 例えば,テキスト・ログインで仮想コンソール[拡大表示]を利用している場合には,

というように,端末タイプがlinuxになっています。

 一方,グラフィカル・ログインで,デスクトップの[アプリケーション]→[システムツール]→[GNOME端末]を選択し,端末エミュレータを起動して,次のように入力すると

と出力されます。

 このように端末タイプが違いますが,これは画面制御のコマンドが異なるということになります。従って,現在使用中の画面(ウインドウ)に対応した適切なタイプを設定する必要がありますが,通常は自動設定されるので,特に設定を施す必要はありません*11[拡大表示]。

 なお,どのようなタイプが設定可能かを確認したい場合には,/etc/termcapファイルの内容を見てください。このファイルに記述されていない端末タイプは,原則として使うことができません。

vimのモード

 vimにも,行エディタのedと同じように,入力モードとコマンド・モードがあります。しかし,前述したようにvimは行エディタのexと一体化していますので,exのコマンド・モードも使えます。混乱を避けるために,vim独自のコマンド・モードを単に「コマンド・モード」と記し,exのコマンド・モード(言い換えれば,exから受け継いだコマンド・モード)を「exモード」と記すことにします。

 vimも起動時には,コマンド・モードに設定されています。 まず,vimのモード変更用のコマンドを表4[拡大表示]に示します。なお,入力モードからexモードに直接変更することはできません。exモードのみ画面最下行左端にプロンプト「:」が表示されます。

 vimのモード変更以外の基本的なコマンドを表5[拡大表示]に,exの基本的なコマンドを表6[拡大表示]に示します。

 表5と表6から分かるように,vimのコマンド・モードだけでは,元のファイルに上書き保存する以外に,ファイル名を指定した読み込みや保存ができません。そのため,ファイル名を指定した読み込み,あるいは保存を行いたい場合は表6のexモードのコマンドを利用します。

基本的な使い方

 コマンドを見ても具体的な使い方がイメージしにくいので,操作例を紹介します。

●「/etc/inittab」の編集例

 端末エミュレータ(gnome-terminal)上でvimを用いて/etc/inittabファイルを編集し,ログイン方法をグラフィカル・ログインからテキスト・ログインに変更してみましょう。まずは,inittabファイルを開きます。

 編集対象のテキストがカラー表示されていることが分かります(写真3[拡大表示])。カーソル移動キー(→←↑↓)で編集対象の位置に移動します。この例では,「id:5:initdefault:」の行の「5」の文字位置に移動し,r(置換コマンド)を入力し,続いて3を入力します。

 編集作業が終了したら,exのコマンドを用いて編集内容をファイルに保存します。viからexのコマンドを利用するには,コマンド・モードで「:」(コロン)を入力します。すると,画面最下行左端にプロンプト「:」が表示されます。そこで,wを入力してファイルに上書きしてから,qを入力してvimを終了します。

 ファイルの変更を反映させずに(元のファイルの内容のままで)vimを終了したい場合は,「:」に続けて,q!と入力します。

●「.bash_profile」の編集例

 さらに,bashの設定ファイル「.bash_profile」の編集例を示します*12[拡大表示]。ここでは,エイリアス(別名)を設定します。Linuxの端末エミュレータ画面のクリアコマンドはclearですが,Windowsのコマンド名と同じclsを別名として設定します。シェル上では,

と入力します。この設定は,シェルの実行終了で無効となります。次回のシェル起動時も有効にしたい場合には,上述の設定ファイル「.bash_profile」に以下を記述します。

vimを用いた記述手順は次のようになります。まず,シェルで以下のコマンドを入力します。

すると,写真4[拡大表示]のような画面となります。カーソル移動キーで最後の行(13行目),最後の文字(14文字目)まで移動します。次に,aを入力した後,Enterキーを押します。すると,14行目にカーソルが移動しますので,「alias cls=clear」を入力します。今回はこれで文字列挿入は終了ですので,Escキーを押してコマンド・モードに戻ります。さらに,「:」を入力しexモードにします。画面最下行左端にプロンプト「:」が表示されますので,wを入力してファイルの上書き保存を行い,最後にqを入力してvimを終了します。

 これで,次回のシェル起動時から別名clsが有効となり,clearおよびclsのどちらでも画面クリアが実行されます。直ちに有効にしたい場合には,

と入力します。