0

当我按下 Ctrl+] 时,我可以使用 Vim 用来查找定义的机制吗?该文档似乎假设我设置了一个标签文件。我想提供类似的东西:给定当前缓冲区中的一行和一列,在那里获取单词,并返回定义该单词的文件名、行和列。

作为背景,我正在添加到 Vim F# 插件。我通过omnifunc和balloonexpr工作了omnicompletion和气球,现在我希望Ctrl+]在F#源文件中工作。

4

2 回答 2

0

您可以使用F#<C-]>文件类型在缓冲区中本地重载映射并调用您自己的查找函数,但这只是部分和 hacky 解决方案,因为它忽略了所有其他与标​​签相关的功能(如等)更好地集成到 (可扩展和开放)标签系统。:tag

您需要为 F# 源代码生成标签数据库。格式很简单,见:help tags-file-format。默认标签程序Exuberant Ctags可以使用正则表达式进行扩展,但这可能只会产生对 F# 等复杂语言的近似解析。最好为它编写一个专用的可执行文件。(有先例,例如Java 的jtags,许多标签侧边栏插件也可以配置为使用自定义标签程序。)

于 2013-02-12T07:11:08.587 回答
0

嗯,最直接和最可靠的解决方案可能是向 ctags 添加 F# 支持

同时,您可以使用:vim递归搜索任意路径<cword>并使用:copen.

于 2013-02-11T16:22:01.243 回答