2013-02-12 74 views
1

我開始使用AutoComplPop來自動完成代碼。它對我正在編輯的單個文件非常有用,但是如果file1對file2中定義的方法進行引用,它就不會找到它。使AutoComplPop搜索整個項目(或打開緩衝區)?

該文檔沒有指定是否有方法使其搜索整個項目目錄,甚至只是所有打開的緩衝區,所以我不能說這是不是插件所做的事,或者如果我需要啓用某些東西。

我測試了兩個Ruby文件,如果這是相關的。謝謝!

回答

0

根據遊標左側的內容,ACP(與所有選項一樣)決定使用哪種完成機制。

但ACP只使用Vim的默認完成機制:如果<C-x><C-o><C-n>/<C-p>不提供您要查找的內容,ACP將無濟於事。先嚐試一下。

+0

當我做'C-n'時,我正在尋找的東西確實出現了。但是,它不是通過ACP出現的。想法? – Jonah 2013-02-12 08:17:54

+0

你在光標的左邊是否有'.'或類似的操作符? – romainl 2013-02-12 08:27:12

+0

是的,我正在使用的示例是對對象的方法調用。 – Jonah 2013-02-12 09:38:55

0

很酷,這個插件看起來很像neocomplcache,但也許更乾淨...看起來有點舊。關於這個項目有很多開放門票,兩年內沒有更新,這一點很少。

無論如何,根據the documentation它不......真的......說。很有可能是以下其中一種情況:

  • 您的pwd。如果您的源的根目錄是some/path那麼這也應該是您當前的工作目錄。嘗試輸入:cd some/path以查看是否有所作爲。
  • 運行時路徑rtp。看看是否用你的源文件添加目錄到&rtp是否有用。
  • path。與&rtp設置相同。

很可能這個插件只是落在與vim捆綁在一起的ruby omni完成函數中。試試help ft-ruby-omni

0

我剛剛遇到同樣的問題,實際上我找到了解決方案。 顯然,你在你的.vimrc文件中設置如下:

let g:acp_behaviorKeywordCommand = "\<C-x>\<C-i>" 

這將使你的源完井包括每個文件ACP的樣子,就好像你實際上打字<C-p>。然而,它很慢,在嘗試之後,我決定在其他情況下沒有匹配和默認行爲時使用<C-p>進行還原。

0

看起來像該問題的原因是,ACP設置complete option其目的,以.,w,b,k(參見autocomplpop /插件/ acp.vim線#125),

call l9#defineVariableDefault('g:acp_completeOption', '.,w,b,k') 

而當按\<C-n>時使用的默認值是.,w,b,u,t,i。看起來最後一個字母i實際上是有區別的:由於某種原因,vim將而不是使用來自緩衝區中打開的包含文件的單詞來完成另一個緩衝區中的單詞。所以,b選項是不夠的,還必須包含i。添加下面一行到我的.vimrc幫助

let g:acp_completeOption = '.,w,b,u,t,i' 

至少它爲C++文件,但我不知道它解決了這個問題的Ruby腳本的情況。