2

vimのPHPプロジェクトでキーワード補完にctagsを使用しています。ctagsはそのままではPHP名前空間を処理しないため、ctagsコマンドに正規表現オプションを追加しました。

ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...)

これはかなりうまく機能します。入力すると、、などFoo<Ctrl+N>の提案が表示されます。FooFoo\BarFoo\Bar\Baz

ただし、vimがタグファイルで検索するキーワードを決定する場合、バックスラッシュは単語の区切り文字としてカウントされるようです。

言い換えれば、タイピングは私に等の提案を与えませんFoo\Ba<Ctrl+N>それFoo\Bar\Bazは私が望むものです。実際に始まるタグのみが提案されますBa(つまり、私の名前空間はどれも提案されません)。

これは、タグにジャンプするときにも問題になります。Foo\Bar\Bazカーソルの下にあると、を実行すると、を含むファイルに移動します。これは、をCtrl+]含むファイルBazである場合とそうでない場合がありますFoo\Bar\Baz。バックスラッシュが単語の区切り文字として扱われなかった場合、これははるかにうまく機能すると思います。

それで、タグルックアップを行うときにvimにバックスラッシュを単語の一部として扱わせる方法はありますか?

4

1 に答える 1

1

(これ~/.vim/after/ftplugin/php.vimにより、変更が PHP ファイルに対してローカルになります) に、次を追加します。

:setlocal iskeyword+=\\

この変更は、wモーション、awテキスト オブジェクト、場合によっては構文の強調表示など、他のものにも影響することに注意してください。

于 2013-02-05T17:07:06.123 に答える