2014-07-16 63 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。以防將來有人需要這個。

相關問題