Vimのヘルプを使いこなす方法(:help)
ネット検索に頼りきりだと、Vimの手元に標準搭載されている膨大なヘルプの存在を忘れがちになります。英語という壁はあるものの、検索の仕方さえ覚えれば、ネットの断片的な情報より正確で網羅的な説明にたどり着けることが多いです。
目次(10項目)
| 調べたいもの | 入力例 |
|---|---|
| 一般的なトピック | :help {ことば} |
| キー操作 | :help CTRL-X |
| Exコマンド | :help :substitute |
| うろ覚えの単語から探す | :help *word* |
基本の使い方
:help 調べたいこと
:h 調べたいこと " 省略形
キーバインドを調べたいときはキー表記そのものを渡します。
:help CTRL-X
:help i_CTRL-X
Exコマンドを調べたいときはコロン付きで渡します。
:help :substitute
:付きで渡します。この2パターンだけ覚えておけば大半の検索は成立します。
:help text-objects の画面。|…| の上で Ctrl-] を押すとその項目へ飛べる正確なトピック名を覚えていなくても補完で探せる
コマンドライン入力中に次のキーが使えます。
| キー | 動作 |
|---|---|
| Ctrl-d | 入力途中の候補を一覧表示する |
| Ctrl-i(Tab) | 候補を補完する |
| Ctrl-n/Ctrl-p | 補完候補を順に切り替える |
例えば:help quiまで打ってCtrl-dを押すと、quitを含む候補が一覧表示されます。正確なトピック名を最後まで覚えていなくても、途中まで入力して候補から選べば目的の項目にたどり着けます。
ワイルドカードで曖昧に探す
キーワードの一部だけ分かっている場合は、ワイルドカード*を使った検索が効きます。
:help '*width* " "width"を含むオプション名の一覧
:help *pattern* " "pattern"を含む関数・トピックの一覧
オプション名を'で囲むか、関数・トピック名をそのまま囲むかで対象範囲が変わります。うろ覚えの単語からでも関連トピックを芋づる式に見つけられるので、正確な名称が分からないときはまずこれを試すと便利です。
モード別のキーバインド一覧を探す
特定モードのキーバインドをまとめて見たいときは、モードを表す接頭辞を付けて検索します。
:help v_ " ビジュアルモードのキーバインド一覧
:help i_ " インサートモードのキーバインド一覧
:help c_ " コマンドラインモードのキーバインド一覧
接頭辞の後ろに続けてキーを指定すれば、そのモードでの意味だけをピンポイントで調べられます。同じキーでもモードによって挙動が変わることが多いVimでは、この接頭辞を意識するかどうかで検索の的中率が大きく変わります。
*word*、モード別の一覧にはv_/i_/c_のような接頭辞を使います。英語が苦にならなくなる理由
Vimのヘルプは基本的に英語ですが、書式が統一されているため、慣れると専門用語の意味が分からなくても構造から情報を拾えるようになります。オプション名・デフォルト値・関連項目へのリンクが決まった順番で並んでいるので、英文を読むというより「決まったフォーマットから該当箇所を探す」感覚に近づいていきます。
最初は英語というだけで敬遠していたが、Ctrl-dで候補を一覧表示する使い方を覚えてからは、ネット検索よりヘルプで先に調べる癖がつきました。ワイルドカード検索でオプション名を芋づる式に見つけられると分かってからは、うろ覚えの用語でも臆せず:helpを叩けるようになりました。
ヘルプ全体を横断して検索する
タグ名が分からず、説明文の言い回しだけ覚えている場合は :helpgrep が使えます。すべてのヘルプファイルを本文まで検索して、結果をquickfixリストに入れます。
:helpgrep completion
:copen " 結果の一覧を開く
:cnext " 次の結果へ
:help がタグの完全一致を要求するのに対し、こちらは本文の中を探します。そのぶん結果が多く出るので、quickfixウィンドウで絞り込みながら読むのが実用的です。
ヘルプの中を読み進めるキー
ヘルプは普通のバッファなので通常の移動が使えますが、リンクをたどる操作だけは専用のキーです。| で囲まれた文字列の上で Ctrl-] を押すとその項目へ飛び、Ctrl-o か Ctrl-t で戻れます。
Ctrl-] " カーソル下のタグへ飛ぶ
Ctrl-o " 元の位置へ戻る
:q " ヘルプを閉じる
読みながら別の項目を開きたいときは :vert help xxx で縦に並べられます。設定を試しながら読むときは、この形にしておくと画面を行き来せずに済みます。
日本語のヘルプを入れる
英語のヘルプが負担なら、日本語に翻訳されたヘルプを追加できます。vimdoc-ja をプラグインとして入れ、次の設定を書くと日本語のほうが優先して開きます。
set helplang=ja
翻訳が追いついていない項目は英語のまま表示されるので、両方が混ざります。新しい機能を調べるときは英語のほうが確実だと覚えておいてください。:set helplang=en に戻せば英語版に切り替えられるので、突き合わせながら読むこともできます。
まとめ
:helpはキー表記かExコマンド表記かを意識して渡すのが基本です。うろ覚えならCtrl-dでの補完一覧やワイルドカード検索、モード別の一覧を探したいならv_/i_/c_のような接頭辞を使えば、正確な用語を覚えていなくても目的の情報にたどり着けます。ヘルプで見つけたコマンドをそのまま自分用に登録したくなったらユーザー定義コマンドが使えます。用語そのものが曖昧なときはコマンドとExコマンドとマッピングの違いから読むと引きやすくなります。