tagbar + jsctags + tern_for_vim + ctags_exuberantを使用してvimでJavaScriptタグを表示する方法


7

私はvimを使用してjavascriptコードを書いていて、編集している現在のjavascriptファイルのアウトラインビューが本当に好きです。tagbarはこの目的のための人気のあるプラグインです。そして、そのwikiでは、javascriptが機能するために、jsctagsがTernに依存することを推奨しています。

  1. vimプラグインをインストールしました:tagbarとtern_for_vim。
  2. あふれんばかりのctagsをインストールし、そのビンをパスに入れました
  3. jsctagsをインストールしました

vimでjsファイルを開き、タグバーのアウトラインビューを開きましたが、タグが表示されていません。

だから私はコマンドラインで直接jsファイルに対してjsctagsを実行してみますが、それでも何も出力されません。

誰かがこの組み合わせをうまく機能させていますか?誰かがいくつかの考えを共有できますか?


4
それであなたの質問は正確に何ですか?どこか(どこで?正確には何をしましたか?)の指示に従いましたが、期待どおりに動作しません(何ですか?)
Martin Tournoij

アーロンが言及しなかったプロセスの一部は、実際にタグファイルを生成することです。それは、シェル上で何かを実行することで可能であるかもしれない:jsctags *.js **/*.js
joeytwiddle

あなたの質問は編集後の方がいいです;-)しかし、問題を明確に示す(小さな)vimrcファイルと(小さな)JSファイルを含めると、この質問はおそらくより良い答えになると思います。これにより、潜在的な回答者が問題の調査を始めるために必要な労力が減ります;-)
Martin Tournoij 2015年

1
@joeytwiddle Tagbarプラグインは、外部ツールを使用して独自のタグファイルを作成します。コマンドラインで手動で行う必要はありません。
リッチ

2
リビジョン4→3をロールバックしました。代わりに解決策を自己回答として投稿してください。
200_success

回答:


4
:g/func/#

サードパーティのプラグインをインストールしたり、外部プログラムを必要としたりせずに、現在のJavaScriptバッファの実用的な概要を提供します。

func\|var変数宣言を含めるために使用します。


「実用的」とはどういう意味ですか?より具体的には、どのようなアクションを実行できますか?
joeytwiddle 2015年

タイピング:[line_number]は明らかなアクションだと思います。最後の行をでヤンクし/yたり、ですべて削除したりすることもでき/dます。(私は聖杯を偶然見つけました。)すべての行をヤンクする方法はありますか?
joeytwiddle 2015年

@joeytwiddle、はい、:23<CR>明白なものです。を使用:g//y Aして、出力のすべての行をヤンクして登録できaます。
romainl 2015年

1

JavaScriptとCoffeeScript用の一連のCTAGS正規表現ルールを開発しました。私のルールには単体テストが含まれているため、他のルールよりも信頼性が高いと思います。

これが最新のはずのgitリポジトリです:https : //github.com/winstonwolff/ctags-javascript-coffeescript

そして、これは私がこの投稿を書いている時点で使用しているルールです:

--languages=-JavaScript
--langdef=js
--langmap=js:.js
--regex-js=/^var[ \t]+([a-zA-Z0-9._$]+) = \[/\1/a,array/
--regex-js=/^var[ \t]+([a-zA-Z0-9._$]+) = \{/\1/o,object/
--regex-js=/^var[ \t]+([a-zA-Z0-9._$]+)[ \t]*=[^{\[]*$/\1/r,var/

--regex-js=/^var[ \t]+([A-Za-z0-9._$]+)[ \t]*=[ \t]*[A-Za-z0-9_$]+.extend/\1/f,function/
--regex-js=/^[ \t]*([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*[:=][ \t]*function/\2/f,function/
--regex-js=/^[ \t]*function[ \t]*([A-Za-z0-9_$]+)[ \t]*\(/\1/f,function/
--regex-js=/^[ \t]*var[ \t]+([A-Za-z0-9_$]*\.)*([A-Za-z0-9_$]+)[ \t]*=[ \t]function/\2/f,function/

--regex-js=/(jQuery|\$)\([ \t]*([^ \t]*)[ \t]*\)\.bind\([ \t]*['"](.*)['"]/\2.\3/f,function/

--regex-js=/^[ \t]*describe[ \t]*\([ \t]*["'](.*)["']/\1/f,function/
--regex-js=/^([ \t]*)(describe|context|it)[ \t]*\([ \t]*["'](.*)["']/.\1\3/f,function/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.