vim 无法跳转模板函数的定义导航
vim couldn't jump a definition navigation for template functions
我有一个包含这些代码的 .h 文件:
template<BLA>
func1() {}
// something
template<BLA>
func2() {
func1();
}
当我键入命令 GoToDefinition 时,出现错误:"YCM : 'RuntimeError : can't jump to definition.'"。
我想念什么吗?以及如何找到定义?
顺便说一下,我的 .vimrc 中有这个:
let g:ycm_global_ycm_extra_conf = ' ~/ycm_extra_conf.py'
**************第二次编辑******************
我重新安装了我的 YCM,并通过以下命令尝试了 YCM 的 ctags :
ctags -R --fields=+l
成功了,谢谢。
上次我查过,YCM对源代码的理解仅限于一个翻译单元。它很难找到定义函数的位置,因为它很可能在另一个翻译单元中。
换句话说,只要您想跳转到与您当前正在编辑的同一 .cpp 文件中的定义,它就应该可以工作。
因此,当尝试从它的调用站点访问模板函数定义时它也应该起作用——因为我们应该包含相关代码。如果不是,则可能与 YCM 使用的 clang 引擎对源代码的不正确理解有关,或者与 YCM 未配置为使用 clang 有关。
关于标签,它们可以完成这项工作,但实际上,在 C++ 中,您需要一种方法来缩小所显示的标签的范围。这就是我开始的原因 lh-tags:它显示所有匹配的标签,并允许根据各种条件(文件名、种类、范围...)过滤它们
我有一个包含这些代码的 .h 文件:
template<BLA>
func1() {}
// something
template<BLA>
func2() {
func1();
}
当我键入命令 GoToDefinition 时,出现错误:"YCM : 'RuntimeError : can't jump to definition.'"。 我想念什么吗?以及如何找到定义?
顺便说一下,我的 .vimrc 中有这个:
let g:ycm_global_ycm_extra_conf = ' ~/ycm_extra_conf.py'
**************第二次编辑******************
我重新安装了我的 YCM,并通过以下命令尝试了 YCM 的 ctags :
ctags -R --fields=+l
成功了,谢谢。
上次我查过,YCM对源代码的理解仅限于一个翻译单元。它很难找到定义函数的位置,因为它很可能在另一个翻译单元中。
换句话说,只要您想跳转到与您当前正在编辑的同一 .cpp 文件中的定义,它就应该可以工作。 因此,当尝试从它的调用站点访问模板函数定义时它也应该起作用——因为我们应该包含相关代码。如果不是,则可能与 YCM 使用的 clang 引擎对源代码的不正确理解有关,或者与 YCM 未配置为使用 clang 有关。
关于标签,它们可以完成这项工作,但实际上,在 C++ 中,您需要一种方法来缩小所显示的标签的范围。这就是我开始的原因 lh-tags:它显示所有匹配的标签,并允许根据各种条件(文件名、种类、范围...)过滤它们