Hack #199: :helpに慣れ親しむ
Posted at 2011/02/05ツイート
タグ名の規則を知らないと引けない
さて、少しだけHack #45のおさらいです。
関数は「()」を末尾に持つタグを持っています。
オプションは「’(シングルクォート)」で囲まれたタグを持っています。
Exコマンドは先頭に「:(コロン)」を持つタグを持っています。
また英語版以外のhelpが用意されている場合はタグ名に続けて「@ja」のように@ + {各言語特有の2文字の文字列}
が続きます。
しかし英語版とその他の言語といったように両方存在した場合は
英語版のタグにも@en
という文字列が末尾につきます。
ちなみにこの2文字は「help.jax」だったら「ja」、 「help.frx」だったら「@fr」のように 各言語のhelpファイルの拡張子から末尾のxを取った2文字です。 英語だけは例外で「.txt」という拡張子のhelpファイルです。
コマンド(!= Exコマンド)はだいたい次のような規則になっています。
{モード}_[CTRL-]{キー}
またさらに{キー}
の部分は次のようになっています。
{キー1}
{キー1}_{キー2}
{キー1}_{キー2}_{キー3}
...
のように押すキーの数だけ以下続いていきます。
実践的な例
さてこの記事では少し進んだ実践的な例を出すことにしましょう。
例えば:help v_<
という項目は
- ヴィジュアルモードの(v)
<
というキー
で実行されるコマンドということです。
また、:help i_CTRL-R_=
という項目は
- インサートモードの(i)
<C-r>=
というキー
で実行されるコマンドということです。 コントロールキーは「CTRL-」で表されます。 また2個以上キーが続く場合はこのように「_(アンダーバー)」で区切られます。
コマンドラインではワイルドカードを使うことができ、
<Tab>
を押した時点でマッチする候補をリストアップしてくれます。
(この際の挙動は'wildchar'
, 'wildmode'
、'wildmenu'
の値に強く依存します。以下この記事では'wildchar'
が<Tab>
、'wildmode'
が"full"
、'wildmenu'
がオンだと仮定します)
「buf」を含む関数
:help *buf*()<Tab>
関数は「()」を末尾に持つタグを持っています。
「wild」を含むオプション
:help '*wild*'<Tab>
前のと同じですね。 オプションは「’(シングルクォート)」で囲まれたタグを持っています。
頭が「:Neo」で始まるExコマンドを日本語版helpのみから
:help :Neo*@ja<Tab>
Exコマンドは先頭に「:(コロン)」を持つタグを持っています。
@ + 2文字の文字列
を末尾に持ちます。
<C-d>
コマンドラインで<Tab>
の代わりに<C-d>
を押すと
カーソルより前のパターンに一致する名前を
コマンドラインに一覧表示してくれます。
例えば前述の頭が「:Neo」で始まるExコマンドを日本語版helpのみから探し出そうとした場合、
<Tab>
と<C-d>
では以下のような違いがあります。
最初の状態
<Tab>
<C-d>
<C-d>
=> 項目名は?
ちなみにこの<C-d>
のタグ名は、
ここまで読まれた方なら分かると思いますが
:help c_CTRL-d
です。Vim日本語ドキュメントがインストールされている場合その項目名は?
:help c_CTRL-d@ja
です。 少し慣れましたでしょうか。 大丈夫、焦らずとも使ってる内に慣れます。
注意点
ワイルドカードは使えないので、カーソル下の単語を探すコマンド*
の項目は:help star
です。
また、このコマンドはノーマルモードのものなので:help n_star
じゃないか?と思われた方もいるかもしれません。
このようにノーマルモードの項目は先頭にn_
と付きません。
なので冒頭で言った次のような規則は嘘でした。
{モード}_[CTRL-]{キー}
正確に言えばノーマルモードの場合のみ
[CTRL-]{キー}
になります。
:helpgrep
Hack #45にもありますが、:helpgrep
はhelpを全文検索するExコマンドです。
:grep
や:vimgrep
などと同じインターフェースで使えます。
unite-help
またunite.vimというプラグインのunite-helpというプラグインがあります。
これは限られたコマンドラインでワイルドカードを駆使して探すことなく
helpを全文インクリメンタル検索することができるので、
初心者でも手軽に、また:help
よりもより素早く項目を探すことができます。
:helpgrep
のインクリメンタル検索版というとわかりやすいでしょうか。
まさにunite.vimの真価を発揮するプラグインと言えるでしょう。
ref.vim
また直接は関係がないのですが、
ref.vimというmanやperldocやpydocやrefeなど
その他いろんなマニュアルを引けるプラグインが存在します。
これをインストールすることで、デフォルトのK
の挙動が
Vimの:help
を引くだけでなく、perlスクリプトでperldocを引くようになったりと大幅に拡張されます。
もどる
blog comments powered by Disqus