最初に、jsctagsとctagsがとなることはありません。が同期していることを理解する必要があります。単純な関数しかない場合でも、両方のプログラムがわずかに異なる情報を出力することがあります。したがって、一方はまたはのいずれかを使用することをお勧めします。
第2に、AFAIK、TagBarは、ctagsの代わりにjsctagsを使用するように設定する必要はありません。 JavaScriptを使用している場合、デフォルトではjsctagsがデフォルトで使用可能になります。あなたが作業中のjsctagsを持っていればTagBarは不平を言ってはいけません。
第三には、独自のタグに関連する機能(:tag
、:tselect
、<C-]>
、等)のために、Vimは1つのまたは複数の物理tags
ファイルの存在に依存しています。これらのファイルがctags、jsctags、またはwhatevertagsによって生成されるかどうかは、それらが正しく生成されている限り問題ではありません。
そして今、私たちは痛みが本当にどこにあるのかという4番目のポイントに到着します。タグバーも古いいとこのTagListも実際には物理的にtags
ファイルを使用していません。既存のtags
ファイルを使用または更新しようとせずに、ctagsまたはjsctagsを直接利用します。そのため、TagBarが現在のバッファのみを処理するという事実により、あなた自身の物理的なtags
ファイル(したがって、Vimのタグ関連機能)とTagBarは、ほとんど同期していないことが保証されます。同じインデクサを使用していても。
だから... ...私はどちらか ctagsのまたは jsctagsを使用するために、あなたに助言し、両方のものが完全に分離されているようTagBarさんとVimのタグに関連するものを同期について何かを忘れてしまったと思います:
ランダム思考...
Vimが簡単にtags
ファイル(複数可)を見つけるためには、あなたはあなたの~/.vimrc
にこの行を置く必要があります。
set tags=./tags,tags;/
./tags
手段"現在のファイルのディレクトリにtags
ファイルを探します"、tags
は「作業ディレクトリでtags
ファイルを探します」を意味し、;/
は「/
に到達するまで見上げてください」を意味します。
The TagBar wiki jsctagsのバグについては、あなたが気にしないことを確認してください。
jsctagsは、たくさんのコールバックと自己実行機能を備えたクレイジーな「最新の」JavaScriptを書くときのctagsよりも優れています。 JavaScriptがより伝統的なものであれば、ctagsで十分です。
romainl、説明のためにありがとう。私はjsctagsが動作していると思うが、タグバーは変数、メソッド、クロージャなどをブレークダウン/階層なし、オブジェクトツリーのように、または外部ライブラリ(require(..))から参照するだけで示した。それはそれがされている方法ですか?たぶんctagsはより良い仕事をすることができますか?最大の価値は、変数にカーソルを合わせて、それを定義するソースファイルに移動することができるようになります。私は理にかなってほしい。 – 1001b
スコープ付きの階層ビューが必要です。 Jsctagsはctagsよりもスコープが優れているはずなので、TagBar wikiに書かれているjsctagsのバグのように聞こえます。もっと集中的な助けを求めてGithubのissue trackerを試してみるべきです、私は恐れています。最新の 'tags'ファイルをお持ちの場合、変数にカーソルを置いて' 'を押すと、定義にジャンプします。 JSに優しいコマンドについては、[this](https://github.com/romainl/dotvim/blob/master/vimrc#L174)を参照してください。 –
romainl
Thxもう一度。リマップラインは非常に便利です。タグファイルをどのように整理するのですか(あるいはjsctagsコマンドをどう呼びますか)? JSの依存構造の複雑な性質は、物事をあまり直感的にしません。例えば、コアモジュールはノードに座っていますが、プロジェクトファイルは別のパスにあります.Btw、タグのスコープが私に起こります... wikiによると、提案されている修正は、必要に応じて実行できませんダウングレードnode.js!その他の回避策?再びThx。 – 1001b