我发现只有跳转到其他目录中的模块和类时才会发生长时间的跳转。跳转到其他目录中其他模块的功能或方法很快(花费1或2秒)
我是ctags的新手,所以我尝试在网上找到一些教程。
我读了大部分内容,发现这个听起来更正式:source_forge ctag faq
但我发现遵循本教程中的方法3:在每个叶节点目录中构建标记文件,在主目录中构建非静态标记文件。但我无法在自己不同的模块之间跳转叶节点。我只能从主目录跳转到叶节点模块函数。
无论如何,我找到了另一个教程:benoithamelin's personal tutorial 。我在主目录中构建了一个巨大的标签,包括4700+标签行。使用
ctags -R *
嘿,朋友们。我发现我现在可以跳了。除了一些跳跃,我需要等待大约30秒。这是令人难以忍受的,对于其他视图标签,我可以在1或2秒内快速切换到它们。这里有什么问题?我该如何解决?
下面是我的目录结构的树形图:
my_project
├── tags # my tag is here
├── lib
│ ├── dir1
│ │ └── sub_dir1
│ ├── dir2
│ ├── dir3
│ └── dir4
├── logics
│ ├── dir1
│ ├── dir2
│ │ └──sub_dir1
│ ├── dir3
│ └── dir4
├── models
└── views
答案 0 :(得分:2)
我只想在此处添加此内容作为答案,因为它隐藏在@sylvain的评论中:
set tags=tags
set path=.
添加到我的vimrc为我解决了这个问题,运行Neovim 0.2。如果将来有人需要这个。
答案 1 :(得分:0)
vim找到标签并跳转到它的机制大致是:
foreach tagfile in &tags
search for $tag in $tagfile
if found:
get filename from $tagfile
foreach dir in &path:
if $filename in $dir:
open $filename to $tag
考虑到这一点,有两点我认为你可能会遇到延迟:
$tagname
$filename
$dir
因为这两者都涉及文件系统访问。
检查&tags
和&path
选项(包含:set tags
和:set path
)的内容,并确保网络中的任何一个都没有任何内容或慢行。