Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不带ctags的vim自动加载功能导航_Vim - Fatal编程技术网

不带ctags的vim自动加载功能导航

不带ctags的vim自动加载功能导航,vim,Vim,是否有任何vim命令或插件可以从函数引用跳转到脚本文件中的定义,该脚本文件位于“自动加载”目录之一,但使用CTAG除外 例如,将光标放在“call xyz#abc#foo()”上方,输入这样的命令将打开文件“../autoload/xyz/abc.vim”,并将光标位置设置为“function xyz#abc#foo()” 我不需要在每次插入新插件时都生成标签文件。(很抱歉回答得太晚) 我使用标记来导航自动加载的函数 但是我还有一个旧的:SearchInRuntime sp autoload/x

是否有任何vim命令或插件可以从函数引用跳转到脚本文件中的定义,该脚本文件位于“自动加载”目录之一,但使用CTAG除外

例如,将光标放在“call xyz#abc#foo()”上方,输入这样的命令将打开文件“../autoload/xyz/abc.vim”,并将光标位置设置为“function xyz#abc#foo()”

我不需要在每次插入新插件时都生成标签文件。

(很抱歉回答得太晚)

我使用标记来导航自动加载的函数

但是我还有一个旧的
: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',…)

此功能对于引用多个自动加载脚本文件的vim插件开发人员可能很有用。由于“autoload”的父目录列在“runtimepath”选项中,并且可以从函数名推断出更多的子目录,因此不难找到自动加载函数的位置。我想知道是否有人已经实现了这样的功能并将插件上传到了某处。