2014-07-16 103 views
2

重要更新:22,2014年7月

我发现,长期耗时仅跳时会发生跳转到模块和类在其他目录。并跳转到工作或在其他目录中的其它模块的方法是快速(成本1或2秒)为什么我的ctag函数跳得非常慢?


我是新来的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 
  • 症状是你在VIM编辑界面僵持不下,无法输入任何命令,直到函数跳完成后,近30成本秒。
  • 我使用旺盛Ctags的5.9,Vim的7.4和Ubuntu 14.04与的wmii
  • 的MY_PROJECT目录我标签搜索是主要的Windows7操作系统和VirtualBox的Ubuntu的14.04操作系统
  • 我之间的共享目录也使用taglist,但是当我在包含标记文件的主目录中编辑文件时,我没有看到子目录中的函数,如逻辑出现在taglist(:TlistToogle)中。
  • 而当功能跳跃是死锁搜索状态,甚至VIM /路径/要/我的/文件将是相当缓慢
+1

我有7000左右没有减速。你清理了你生成的所有旧标记文件吗? – FDinoff

+0

它可能是错的吗?它在一个git目录中。我认为这非常狂野。我用ctrl +]跳 – Zen

+0

@FDinoff,我清理了所有这些标签,只留下了主要的大标签,问题依然存在,它非常有线,关键在于它可以成功完成,但延迟30秒, ! – Zen

回答

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 

考虑到这一点,有2点,我认为你可能会打一个延迟处:

  • 开幕$tagname
  • 检查$filename$dir

仅仅是因为这两个涉及文件系统访问。

检查的&tags&path两个选项的内容(与:set tags:set path),并确保没有什么在任的那一个网络或慢驱动器上坐。

+0

没有尝试过,但不想浪费系统的赏金。我想你在这个问题上花费精力,所以你应该得到这个。 – Zen

+0

@Zen你最终能够找到问题吗? – sanmiguel

+0

@赞恩的恩惠! – sanmiguel

1

我只是想在这里添加为一个答案,因为它被埋葬在从@sylvain评论:

set tags=tags 
set path=. 

添加到我的vimrc解决了这个问题对我来说,运行Neovim 0.2。以防将来有人需要这个。

相关问题