0

Ctrl+] を押したときに Vim が定義を検索するために使用するメカニズムにフックできますか? ドキュメントは、タグファイルがセットアップされていることを前提としているようです。次のようなものを提供したいと思います: 現在のバッファ内の行と列を指定すると、そこにある単語をフェッチし、その単語が定義されているファイル名、行と列を返します。

背景として、Vim F# プラグインに追加しています。omn​​ifunc と balloonexpr を介して omnicompletion とバルーンを使用していますが、F# ソース ファイルで Ctrl+] を使用したいと考えています。

4

2 に答える 2

0

F#<C-]>ファイルタイプを使用してバッファ内でマッピングをローカルにオーバーロードし、独自のルックアップ関数を呼び出すこともできますが、それは他のすべてのタグ関連機能 (など)を無視するため、部分的でハックなソリューションにすぎません。拡張可能でオープンな)タグシステム。:tag

F# ソース コードのタグ データベースの生成を実装する必要があります。フォーマットは単純です。 を参照してください:help tags-file-format。デフォルトのタグ プログラムであるExuberant Ctagsは、正規表現で拡張できますが、F# のような複雑な言語では、おおよその解析しか得られません。専用の実行可能ファイルを作成することをお勧めします。( Java のjtagsのような前例があり、タグ サイドバープラグインの多くは、カスタム タグ プログラムを使用するように構成することもできます。)

于 2013-02-12T07:11:08.587 に答える
0

最も簡単で堅実な解決策は、おそらくF# サポートを ctags に追加することです。

それまでの間、 を使用:vimして任意のパスを再帰的に検索し<cword>、 でクイックフィックス ウィンドウを開くことができます:copen

于 2013-02-11T16:22:01.243 に答える