vimのPHPプロジェクトでキーワード補完にctagsを使用しています。ctagsはそのままではPHP名前空間を処理しないため、ctagsコマンドに正規表現オプションを追加しました。
ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...)
これはかなりうまく機能します。入力すると、、などFoo<Ctrl+N>
の提案が表示されます。Foo
Foo\Bar
Foo\Bar\Baz
ただし、vimがタグファイルで検索するキーワードを決定する場合、バックスラッシュは単語の区切り文字としてカウントされるようです。
言い換えれば、タイピングは私に等の提案を与えませんFoo\Ba<Ctrl+N>
、それFoo\Bar\Baz
は私が望むものです。実際に始まるタグのみが提案されますBa
(つまり、私の名前空間はどれも提案されません)。
これは、タグにジャンプするときにも問題になります。Foo\Bar\Baz
カーソルの下にあると、を実行すると、を含むファイルに移動します。これは、をCtrl+]
含むファイルBaz
である場合とそうでない場合がありますFoo\Bar\Baz
。バックスラッシュが単語の区切り文字として扱われなかった場合、これははるかにうまく機能すると思います。
それで、タグルックアップを行うときにvimにバックスラッシュを単語の一部として扱わせる方法はありますか?