ハウツー: Vimの簡単な始め方

 Vimの無数の機能と柔軟さはベテランのユーザにとっては大きな利点であるが、初心者にとっての敷居を高くしてしまっているというのも事実だ。あなたがもし、Vimを使いたいとずっと思っていながらも初めて試したときにうんざりしたきりそのままになっているなら、VimをGUIで使用する方法とVimのeasyモードについて知ることからVimを少しずつ始めてみよう。この記事は、今までにあまりVimを使ったことがないが、これからゆっくりと挑戦してみようと思っている人のための手引きだ。

 VimもVim以外のvi系のエディタもまったく使った経験がない人がVimを始めるには、VimをGUI形式で利用(gVim)するのがおそらく最良の方法だ。gVimでは、すでにVimのキーバインドに慣れている操作に関してはキーボード経由で操作しつつ、キーバインドをまだ身に付けていない操作についてはマウスとメニューを使って手っ取り早く効率的に行なうということができる。

 さらに良いことには、コマンドに対するキーバインドが存在する場合にはたいていメニューにそのキーバインドが表示されているので、同じ操作を繰り返していると、繰り返しているうちにおそらくキーバインドを覚えることができ、最終的にはマウスなしで使いこなせるようになるだろう(もちろん、マウスが良ければマウスを使い続けるのも良いだろう)。

 通常版のVimではできないがgVimではできるということは(あったとしても)ほとんどないが、gVimのようにメニューやアイコンがあった方が多くの操作は簡単で直観的になるだろう。

gVimを始める

 gVimを起動するには、gvimまたは「vim -g」と実行する。gVimを起動してすぐにファイルの編集を開始したい場合には、「gvim ファイル名 」または「vim -g ファイル名 」としてgVimを起動することもできる。

 Vimと同様にgVimも「+n 」オプションを付けて起動することができる。 n は、編集を開始したい行の行番号だ。つまり例えば「gvim +10 ファイル名 」と実行すると、ファイル名で指定したファイルが読み込まれ、10行目にカーソルがある状態でgVimが起動する。

 また、検索語を指定し、その最初の出現箇所にカーソルを移動した状態でgVimを起動するという方法もある。例えばfoobarという単語が最初に出てきた場所から編集を開始したい場合には、以下のようにしてgVimを起動すれば良い。

gvim +/foobar ファイル名

 gVimが起動すると、他のGUIテキストエディタとほぼ同じような見掛けをしていることが分かるだろう。他のエディタと同様にgVimにも、様々なメニューがあり、ウィンドウ右端にスクロールバー(これについては移動したり消したりすることが自由にできる)があり、ウィンドウ上部にはSave(保存)/Undo(アンドゥ)/Search(検索)などのよく使われる機能を素早く利用するためのツールバーもある。

簡単なVim

 Vimには、「easy(簡単)」モードというモードもある。easyモードはVimのチュートリアルや文書ではあまり頻繁には触れられていないのだが、その理由はeasyモードが、たいていのVimユーザがVimに対して求めることとはまったく反対のことを行なうからだ。Vimは、よく使う人ならご存じの通り、Bill Joy氏の古典的なviをベースとした「モード」ベースのエディタだ。Vimには、挿入モード、コマンドモード(通常モード)、ビジュアルモードの他にもいくつかのモード(あといくつあると考えるかは人によって異なる)がある。モードというVimの特徴は、一度こつをつかんでしまえば、この上なく便利だ。しかし慣れるまでは、テキストの検索や置き換えといった単純な操作をするだけでも一苦労かもしれない。

 easyモードというのは実際には、Vimに他の標準的なテキストエディタのような振る舞いをさせるための、Vimのさまざまなオプションを集めたものだ。例えばVimの通常モードではyでテキストをヤンク(コピー)してpまたはPでテキストの貼り付けを行なうが、easyモードではCtrl-cでテキストをコピーし、Ctrl-vでテキストを貼り付けるという標準的な方法を使うことができる。NotepadやMicrosoft Wordを1、2週間でも使ったことがあればこのようなショートカットには馴染みがあるため、平均的なユーザにとってはこのような模倣によってVimがより直観的なものになる。easyモードによってその他にどんなことができるようになるのかなど、より詳しくはヘルプを参照してほしい。

 とは言えモードを使わないのであればVimを使う意味がないと思われるかもしれない。しかしVimには、モードに依存しない気の利いたツールや機能(例えばKateやgeditのような他のエディタでは得られないかも知れない、マクロ、構文のハイライト、セッションといったVimの利点)も数多くある。

 easyモードではまた、通常のVim/gVimにはないコンテキストメニューを利用することができる。gVimウィンドウ内で右クリックすると、単語/文/段落/行/バッファ内の全テキスト、のいずれかからテキストを選択することのできるメニューが表示される。またコンテキストメニュー経由でテキストのコピー/切り取り/削除/貼り付けや、操作のアンドゥを行なうこともできる。

 なおコンテキストメニューは気に入ったがeasyモードでVimを実行したくはないという場合には、以下のようなコマンドで簡単にマウスの動作を変更することができる。

:behave mswin

 上記を実行すると、easyモードを使用していなくてもコンテキストメニューを利用することができるようになる。

 デフォルトでは、easyモードでEscを入力してもコマンドモード(通常モード)にはならない。そこでgVimを本来の姿で使用したくなったときには、メニューからEdit(編集)→Global Settings(グローバル設定)→Toggle Insert Mode(挿入モード切替)を実行するとコマンドモードにすることができる。これを実行するとeasyモードと通常のgVim/Vimのモードとを切り替えることができるようになるが、また元のように完全にeasyモードだけに戻したいという場合には、メニューを使うか、コマンドモードで:set im!と実行すればeasyモードに切り替えることができる。

 以降この記事では、easyモードではなく通常のgVimのモードでの使用を前提としているが、gVimのeasyモードは、Vimを始めたいユーザにとって最もフレンドリーな方法であるということを強調しておきたい。

 なお、gVimはデフォルトでは背景色が白で文字色が黒という地味な色使いで起動されるが、もう少し面白味のある色合いを好む人のために、いくつかのカラースキームが用意されている。Edit(編集)メニューでColor Scheme(カラースキーム)を選択すると、blue(青)/darkblue(紺)/peachpuff(肌色)など、10種類ほどの選択肢から選ぶことができるようになっている。

gVimでの作業

 おそらくこれは言うまでもないことだが、gVimはGUIテキストエディタとして設計されているため、Vimの通常のテキスト選択方法に加えてマウスを使うことでもテキストを選択することができる。つまり、マウスを使って選択したいテキストを指定するだけで、文字/単語/文など何でもハイライトすることができるということだ。また、マウスを動かすだけで画面上のどこにでもカーソルを持っていくことができる。なお、マウスを使ったカーソルの移動は、xtermなどの端末エミュレータ上でGUIでない通常のVimを実行している場合にも可能だが、その場合はマウスのサポートが組み込まれている必要があり、デフォルトではそうなっていない。

 とは言え、Vimの通常のテキスト選択機能と比較するとマウスは使いにくいツールであるということも忘れてはいけない。マウスを使わずにVimの通常のテキスト選択機能を利用する場合には、vと入力するとビジュアルモードを開始して文字単位の選択が可能になり、またVで行単位の選択、Ctrl-vでテキストブロック単位の選択を行なうことがそれぞれ可能になる。

 またgVimにはクリップボードが2つあるという点も注目に値する。一つは何らかのハイライトされたテキストである現在の選択テキストを保持するクリップボードであり、もう一つはコピーしたテキストを保持するクリップボードで、こちらは新しく別のテキストを選択しても残っている。例えばマウスを使って文を選択した後にマウスの中ボタンをクリックすると、たった今選択したテキストを貼り付けることができるが、その際、テキストを選択した後にVimのEdit(編集)メニューを使ってテキストをコピーしておくと、そのテキストは新たに別のテキストを選択した後にもクリップボード内に保存されているようになる。このことは、複数回貼り付けを行なう必要のある文字列(例えば手紙のテンプレートなど)があるときに、通常のテキスト選択も行なう必要があるという場合に役に立つ。

 以前Vimのビューポートについて紹介する記事を書いたが、実はgVimではビューポートの管理をVimよりもずっと簡単に行なうことができる。例えば、通常のVimのキーバインドを使ってビューポートを開くという方法はもちろん、Window(ウィンドウ)→New(新規)を実行して新規ファイルの編集用にビューポートを新しく作成したり、Window(ウィンドウ)→Split(分割)を実行してすでに開いているファイルと同じファイルの異なる部分を表示するためにウィンドウを分割したり、Window(ウィンドウ)→Split Vertically(垂直に分割)を実行して水平ではなく垂直にビューポートを分割することもできる。またビューポートの移動については、Ctrl-wを入力して各ビューポートへの移動を順番に行なったり、Window(ウィンドウ)メニューを使って別のビューポートへ移動したり、カーソルを持っていきたいビューポート内でマウスの左ボタンをクリックするだけでビューポートの移動をすることもできる。

 しかしながらgVimでのビューポートに関して特に魅力的な点は何かと言えば、マウスを使って簡単にビューポートの大きさを変更できるという点だろう。通常のVimでウィンドウの大きさを変更するにはCtrl-w -Ctrl-w +を使う必要があるが、gVimではマウスでも通常のVimのキーバインドでも、自分の使いやすい方を使ってウィンドウの大きさを変更することができる。

 gVimはGUIベースのプログラムであるとは言え、シェルの利用も手軽にできる。gVimセッションからシェルへ移るには:shと入力し、シェルから抜けるにはexitと入力するだけで良い。なおgVimの端末エミュレーションには画面のリフレッシュに関して改善の余地があるようなので、ほとんどの作業は通常の端末エミュレータで行なった方がおそらく良いだろう。

gVimでのファイル指定

 gVimを使ってリモートファイルを編集するのは、リモートのシェルでVimを使用した場合とほとんど同じくらい簡単に行なうことができる。サーバ上にあるファイルを編集する際、私はいつもSSH経由でリモートマシン上のシェルでVimを起動してファイルを編集するのだが、これと同等のことをローカルセッションのgVim(通常のVimでも可)を利用して行なうことができる。

 scp(secure copy)を使ってリモートのファイルを開くには、以下のようにする。

:e scp://user@remote.host.net/path/to/file

 これにより、指定したユーザとしてリモートマシンにセキュアなコネクションを開くことができる。SSHのキーの設定をしている場合には、パスワードを入力せずにログインすることができる。一方SSHのキーの設定をしていない場合は、ファイルを保存する度に毎回パスワードの入力が求められるので少し面倒かもしれない。

 なおリモートファイルの編集に関しては他にもいくつかのプロトコルで行なうことが可能であり、sftpやftpやrsyncなどを代わりに使用することもできる。Vimのヘルプガイドに利用可能なプロトコルの一覧がある。

 一方リモートファイルの名前や正確なパス名がわからないという場合には、以下のようにファイル名を省くとVimのファイルブラウザが起動する。

:e scp://user@remote.host.net/

 ファイルブラウザではディレクトリ内容の一覧を見ることができるので、編集したいファイルを簡単に見つけることができる。ファイルブラウザで編集したいファイルがハイライトされている状態でEnterを入力すれば、編集を始めることができる。

 最後に、gVimのスペルチェック機能に触れずに終わることはできないだろう。behave mswinとスペルチェック機能の両方を有効にすると、コンテキストメニュー経由で、辞書に単語を追加したり、別のスペルも受け付けるようにしたり、スペルチェック機能の対象から単語を外すようにしたりすることができるようになる。スペルチェック機能を有効にするには、Tools(ツール)→Spelling(スペル)→Spell Check On(スペルチェックを有効にする)を実行する。なおスペルチェックをちゃんと動かすためにはおそらく構文ハイライトを無効にする必要があるだろう。これはSyntax(構文)メニューから行なうことができる。

 これまでVimを使ったことがなかったり、Vimを使ったことはあるが難しすぎると感じているなら、是非gVimを数日間使ってみよう。gVimは利用したいと思うような優れた機能を多く備えているだけでなく、その水面下にはVimのすべての機能が秘められているので、時間の余裕があるときにそれらを少しずつ自分のものにしていくということもできる。