私は最近ラケットを使い始めました。最初に行ったことの 1 つは、vim TagList プラグインをラケットで動作させることでした。しかし、それは少しも機能しません。ラケット ファイルを開くことができ、TagList ウィンドウは、テキスト ファイルを開いた場合と同じように空白になります。
拡張ページによると* ~/.vimrc ファイルに以下を追加しました:
let Tlist_Ctags_Cmd = 'ctags --langdef=racket --langmap=racket:.rkt --regex-racket=/^\(def[a-zA-Z0-9\-_\?\/\\]+[ \t]+([a-zA-Z0-9\-_\/\\\?]+)/\1/d,definition/'
let Tlist_racket_settings = 'racket;d:Definition'
追加の ctags も ~/.ctags ファイルにありますが、TList は私の設定行がうまくいかないというエラーを吐き出していました。私は最初にctagsの既存のスキーム機能を使用しようとしましたが、同じ結果が得られませんでした。既存のスキーム機能を使用するために、 ~/.vimrc で次のことを試しました
let Tlist_Ctags_Cmd = 'ctags --langmap=scheme:.rkt'
let Tlist_racket_settings = 'racket;f:Functions'
他の誰かがそれを機能させる方法について何かアイデアを持っているなら、私は非常に感謝しています.
ありがとう、
- ctags 1ページへのリンクも投稿しますが、許可しません(新しいユーザー)。それへのリンクは、タグリストの拡張ページにあります。
編集
コマンドラインからの ctags
コマンドラインから ctags を使用できます。TagList FAQ ページの ctags 行でテストすると、次の結果が得られます。
$ cat ~/.ctags
--langdef=racket
--langmap=racket:.rkt
--regex-racket=/^\(def[a-zA-Z0-9\-_\?\/\\]+[ \t]+([a-zA-Z0-9\-_\/\\\?]+)/\1/d,definition/
--regex-racket=/^\(define\-syntax(\-rule)?[ \t]+([a-zA-Z0-9\-_\/\\\?]+)/\2/m,macro/
--regex-racket=/^\(define?[ \t]+(([a-zA-Z0-9\-_\/\\\?]+)[ \t]+\(lambda|\(([a-zA-Z0-9\-_\/\\\?]+))/\2\3/f,function/
$ ctags -f - --format=2 --excmd=pattern --fields=nks XMMSClient.rkt
defenum XMMSClient.rkt /^(define-syntax defenum$/;" m line:11
defxmmsc XMMSClient.rkt /^(define-syntax defxmmsc$/;" m line:20
libxmmsclient XMMSClient.rkt /^(define libxmmsclient (ffi-lib "libxmmsclient"))$/;" d line:5
スイッチで言語定義を強制しても、言語をスキームに変更しても、出力は同じです。
タグバーについて
人々がそれを提案する前に、私は TagBar を見たことがありませんでした。興味深いことに、.ctags ファイルへの変更でうまくいきました。残念ながら、ロードされたすべてのバッファのタグを TagList のように表示する設定が見つからないので、TagList を使用することをお勧めします。
比較画像を投稿したいのですが、新しいメンバーとしては許可されないと思います。romainl の提案に従って、vim ファイルタイプをスキームに設定することができ、それは機能します。ただし、これは 80% の解決策のようにしか思えません。拡張ページによるドキュメントが、私が持っているものが機能するはずであることを示唆しているように見える場合です。おそらく、バグレポートの提出を検討する必要があります。
再度、感謝します、