02/01/15 23:22
foo.vim解読の続き。
ちなみにfoo.vimとはこれのことです。
URLリンク(vim.sourceforge.net)
キーワードからパターンを剥いでタグにジャンプするスクリプト
例えば、
nmap <C-]> :call StripTag("Hello")<CR>
と定義しておくと HelloWorld という単語の上で C-] した時、HelloWorld の Hello
の部分が削除されて残った World でタグジャンプしてくれる!
・・・これがどんな時に役に立つのかよくわからないけど。
nmap <C-]> :call StripTag("xxx")<CR>
fun! StripTag(pattern)
let keyword = expand("<cword>")
if keyword =~ '^' . a:pattern
execute "tag!" . substitute(keyword, a:pattern, "", "")
else
execute "normal! \<C-]>"
end
endfun
expand("<cword>") はカーソル位置の単語(キーワード)を返す。
指定パターンがキーワードの先頭からヒットしたらヒットした部分を消してタグジャンプ。
autowrite オプションを有効にしておくと tag 実行時に自動的にカレントのファイル
が保存されるけど、tag! にすると保存されない。
パターンがヒットしなかったら通常の <C-]> を呼ぶと。