私は最近、マウス駆動のプラットフォーム固有のGUIエディターを放棄し、完全にvimに取り組んでいます。これまでの経験は素晴らしかったですが、Javascriptに関しては行き詰まっています。
常に人気のあるタグリストユーティリティ(Exuberant Ctagsを使用)は、Javascript以外のすべてに最適です。言語の形式と構造が非常に自由であるため、タグリストは、開いたときにほんの一握りの関数しか取得できませんでした。次の形式で定義された関数のみです。
function FUNCNAME (arg1, arg2) {
ただし、次のように定義された変数や関数オブジェクトはありません。
var myFunc = function (arg1, arg2) {
そこで、少しググって、ctagsに設定された次の定義を見つけました。これを〜/.ctagsファイルに入れました。
--langdef=js
--langmap=js:.js
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/,object/
--regex-js=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/,function/
--regex-js=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*([^])])/\1/,function/
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/,array/
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^""]'[^'']*/\1/,string/
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^'']"[^""]*/\1/,string/
その後、コマンドラインからctagsを実行するのは素晴らしかった。それは私が見つけるのに必要なすべての関数とオブジェクトを見つけました。
問題は、taglist.vimプラグインがこれらの新しい結果を認識していないことです。javascriptファイルをvimで開いて:TlistToggleを押すと、以前とまったく同じわずかな関数しか得られません。「u」を押してリストを更新しましたが、効果はありません。
taglist.vimを掘り下げて、私はこれを見つけました:
" java language
let s:tlist_def_java_settings = 'java;p:package;c:class;i:interface;' .
\ 'f:field;m:method'
" javascript language
let s:tlist_def_javascript_settings = 'javascript;f:function'
...これは、javascriptのctagsユーティリティからの特定の種類の出力のみを確認していることを意味します。残念ながら、私はタグリストやvim全般に(まだ)精通していないため、これらのすばらしいctagsコマンドラインの結果をすべてvimに表示するためにどのような変更を加えることができるかを知ることができません。
感謝します!