vim-users.jp

Hack #59: 分かりやすいKey-mappingsを定義する

Posted at 2009/08/19
このエントリーをはてなブックマークに追加

Key-mappingsを定義する場合、Prefix-keyを決めておいてまとめて定義できると分かり易くなって便利です。ここではPrefix-keyを用いたKey-mappingsについて説明します。

普通のKey-mappingsの場合

tをタグジャンプのためのPrefix-keyとしてKey-mappingsを定義する場合、次のようになると思います。

nnoremap tt  <C-]>
nnoremap <silent> tn  :<C-u>tag<CR>
nnoremap <silent> tp  :<C-u>pop<CR>
nnoremap <silent> tl  :<C-u>tags<CR>

しかし、これだとPrefix-keyが分かりにくく、Prefix-keyをTに変更するのも大変です。

改良したPrefix-keyのKey-mappings

次に示すのが、上記のPrefix-keyを改良したものです。

" The prefix key.
nnoremap    [Tag]   <Nop>
nmap    t [Tag]
nnoremap [Tag]t  <C-]>
nnoremap <silent> [Tag]n  :<C-u>tag<CR>
nnoremap <silent> [Tag]p  :<C-u>pop<CR>
nnoremap <silent> [Tag]l  :<C-u>tags<CR>

[Tag]というPrefix-keyを抽象化したものを定義し、tを[Tag]にnmapでリンクしています。よって、Prefix-keyを変更するときはnmap t [Tag]を変更するだけで済みます。ちなみに、このように設定しているとKey-mappingが入力途中の場合、Status line上の表示が[Tag]となるので、タグジャンプのキーを入力途中と言うことが分かり易くなります。

Shougo

もどる
blog comments powered by Disqus