不带ctags的vim自动加载功能导航
是否有任何vim命令或插件可以从函数引用跳转到脚本文件中的定义,该脚本文件位于“自动加载”目录之一,但使用CTAG除外 例如,将光标放在“call xyz#abc#foo()”上方,输入这样的命令将打开文件“../autoload/xyz/abc.vim”,并将光标位置设置为“function xyz#abc#foo()” 我不需要在每次插入新插件时都生成标签文件。(很抱歉回答得太晚) 我使用标记来导航自动加载的函数 但是我还有一个旧的不带ctags的vim自动加载功能导航,vim,Vim,是否有任何vim命令或插件可以从函数引用跳转到脚本文件中的定义,该脚本文件位于“自动加载”目录之一,但使用CTAG除外 例如,将光标放在“call xyz#abc#foo()”上方,输入这样的命令将打开文件“../autoload/xyz/abc.vim”,并将光标位置设置为“function xyz#abc#foo()” 我不需要在每次插入新插件时都生成标签文件。(很抱歉回答得太晚) 我使用标记来导航自动加载的函数 但是我还有一个旧的:SearchInRuntime sp autoload/x
:SearchInRuntime sp autoload/xyz/abc.vim
命令,它将拆分打开我们正在查找的自动加载文件(如果尚未打开)
但是实现这个特性应该不难。一旦通过expand(“”)
或其他方法获得函数名,您就可以
- 构建插件名称:
let plgname='autoload/'.substitute(matchstr(fnname,'.\ze,'.\ze,'.')、'./'、'g')。.vim'
- 搜索它:
let matches=globpath('&rtp',plgname,1,1)
- 检查您只有一个匹配项
- 打开文件:
--可能需要更多,以避免多次打开它exe'sp'。匹配[0]
- 然后搜索函数定义:
调用搜索(“^\s*fun\%[action]:\=\s\+'.fnname',…)