Vim のすゝめ

第3回 Vim を使いこなすために必要なたった一つの能力

2012.10.05

Emacs はメーラだと思っている、Vim 使いの「ブイ」(仮名)です。第 3 回目の今回のテーマは「Vim を使いこなすために必要なたった一つの能力」です。いかにも釣りっぽいタイトルですが、釣りではありません。

1 「Vim を使いこなす」ための必要条件

突然ですが、あなたは「 Vim を使いこなしている」人はどういう人だと思いますか。プラグインを大量にインストールしている人でしょうか。それとも、.vimrcが 1000 行を越えている人でしょうか。勉強会にこまめに参加している人でしょうか。どれも、それなりに説得力があるように見えます。しかし、私が考えるにそれらの条件は「Vim を使いこなす」ための必要条件ではありません。

私が考える「Vim を使いこなす」ための必要条件とは、「Vim の ”:help” が引けること」、ただそれだけです。極端な話、.vimrc が 10 行に満たないとしても、:help を自由に使いこなせるのなら、:help が使いこなせない .vimrc が 1000 行の人よりも Vim を使いこなす能力は高いと考えられます。

ではなぜ、:help が引けるのがそれほどまでに重要なのでしょうか。それは Vim のヘルプ内に Vim の全ての機能が記述されているからです。そのドキュメントの量は合わせて 5 MB 以上、もはや Vim の仕様書と言っても過言ではないでしょう。いくら有用な書籍やブログ記事 [1] であっても、ヘルプの劣化コピーになってしまうというのは避けられません。

どんなときに :help を引くのがよいのでしょうか。さすがに膨大なドキュメントを頭から読んでいくわけにはいきません。リファレンスマニュアルを最初から読みこなすような人はまずいないのと同じことです。私がオススメする使い方は、「他人の .vimrc を読んでみて、分からないことがあれば :help を引いてみる」ことです。最近では、多くの.vimrc がネット上で公開されるようになっています。しかし、よく分からないまま Vim を設定するのは大変危険な行為です。分からない設定があったら、どんどん :help で調べる癖を付けましょう。

「この連載を読んでいて、分からないところがあったら引いてみる」のもよいでしょう。ブログの記事で伝えられる量にも限界があるからです。この連載でも、機会があれば、どの help の項目を読むべきか紹介しようと考えています。

2 help を引いてみる

それでは、実際に :help を引いてみることにしましょう。前回の復習として、:edit コマンドについて調べてみます。次のコマンドを実行してください。

:help :edit

おそらく、次のような説明用のウインドウが表示されたのではないかと思います。このウインドウは help ウインドウと言います。第 2 回で説明した通り、<C-w>c のキー操作で閉じることができます [2]

:e[dit] [++opt] [+cmd]  Edit the current file.  This is useful to re-edit the
                        current file, when it has been changed outside of Vim.
                        This fails when changes have been made to the current
                        buffer and 'autowriteall' isn't set or the file can't
                        be written.
                        Also see |++opt| and |+cmd|.
                        {Vi: no ++opt}

:edit コマンドの解説が英語で表示されています。文章を読むと、:edit とは現在のファイルを開き直すコマンドであることが分かります。ただ、この解説だと前回使用した「別のファイル」を開く :edit の機能がよく分かりません。

:edit の解説を下に辿ってみると、引数ありの :edit の解説を見つけることができます。

:e[dit] [++opt] [+cmd] {file}
                        Edit {file}.
                        This fails when changes have been made to the current
                        buffer, unless 'hidden' is set or 'autowriteall' is
                        set and the file can be written.
                        Also see |++opt| and |+cmd|.
                        {Vi: no ++opt}

この解説を見ると、:edit に引数を与えると、引数に与えられたファイルの編集を開始するということが分かります。

:help では、解説文にいくつかの記号が使用されています。:e[dit] のように、[] で囲まれている部分は省略可能という意味です。この場合だと、:edit:e と省略することができ、[++opt] [+cmd] の部分も省略できるということが分かります。{file} という表記は、{} に囲まれた部分がコマンドの引数名を表します。この場合、引数に [] が付加されていないため、この引数は省略ができません。|++opt| の部分は他の項目へのリンクです。リンクには <C-]> というキー操作でジャンプすることができます。元の項目に戻るには <C-t> です。'autowriteall' とは、autowriteall オプションのことです。このオプションの項目にもリンクと同様、<C-]> でジャンプすることができます。オプションについては、いずれ解説する機会があるでしょう。

:help :edit を実行するとき、edit に ”:” を付けるのを忘れないようにしましょう。ただの :help edit だと、他の項目にマッチしてしまう可能性があります。”:” を付けることで、コマンドを検索するという意味になります。

:help の詳しい使い方は、:help helphelp を実行すると載っています。

Vim のヘルプは当然英語です。英語に自信がある人なら英語のヘルプを読むのを推奨しますが、英語を読むのが億劫という人も少なからず存在することでしょう。そんなときは、有志により日本語のヘルプが用意されているので導入すると良いでしょう。以下が日本語ヘルプの導入方法が記述されている URI です。

https://github.com/vim-jp/vimdoc-ja/wiki/HowToUse

香り屋で配布されている Vim や MacVim-Kaoriya など、一部の Vim 環境ではデフォルトで日本語のヘルプがインストールされていることがあります。

次回は「ビジュアルモード」について解説する予定です。

[1]もちろん、このブログ記事も例外ではなく、:help が引けるのなら、本来この記事を読む必要すらありません。Vim に入門書以上の書籍があまり存在しないのは、標準添付されているヘルプがよく出来ているというのも原因の一つだと思います。
[2]:q でもヘルプウインドウを閉じることができますが、誤爆して作業中の Vim を閉じてしまうと危険なので推奨しません。
This article is made by Vim.

著者プロフィール

v

ブイ。社内では数少ない Vim 使い。ブログ記事の執筆により、社内でのVim の知名度を上げ、Vim を使用する人を増やそうと計画しているらしい。

記事一覧Index