2014-10-02 69 views
1

當我嘗試在Vim(Linux)中打開一個文件進行編輯時,當我按Tab鍵時,Vim自動完成文件名的自動填充,並且僅使用當前目錄中的文件名。但是,在Web上搜索時,我認爲Vim應該從搜索路徑中的所有目錄中使用文件名來支持bash類文件名自動完成。在Vim tab中完成文件名不起作用

說,在目錄dir1(該目錄也在環境變量PATH中)中有一個文件file1

我在Vim中鍵入以下命令:

set path=/dir1 
set wildmode=list:longest 

然後,當I型:

:e fil<TAB> 

的文件名是自動完成不。如何在Vim中啓用此功能?

回答

6

Tab-completion works。你只是希望它做一些它本來不應該做的事情。

:e[dit]和它的兄弟姐妹(:sp[lit]:vs[plit]:tabe[dit])不要使用path選項可言,不管你是什麼版本的Vim。

  • 使用:fin[d] fil<Tab>來代替(:sf[ind]:vert sf[ind]:tabf[ind])。

  • 使用set path=/dir1/**使:find遞歸。

請參閱:help 'path':help :find

編輯

人們普遍認爲「良好做法」從你的項目的根目錄啓動Vim:

$ cd /path/to/project 
$ vim somefile 

主要優點在於它設置Vim的「當前目錄」的可用的值,使您可以相對輕鬆地瀏覽項目,或以清晰直觀的方式在項目中使用外部程序。

順便說一句,我只用了文件導航:find(和它的兄弟姐妹),我有幾個小竅門:

" sets 'path' to: 
" - the directory of the current file 
" - every subdirectory of the "current directory" 
set path=.,** 

" enables the wildmenu 
set wildmenu 

" ignore specific directories and files 
set wildignore+=*.min.* 

" case-insensitive search 
set wildignorecase 
+0

OP,見我的編輯。 – romainl 2014-10-02 07:00:56

+0

我喜歡在編輯時將每個文件的目錄添加到我的路徑中,並將其添加到路徑的BEGINNING中以加快搜索相關文件。我對標籤文件做同樣的事情;我以爲我創建了一個關於它的維基頁面,但我現在找不到它。 – Ben 2014-10-02 16:17:01

+0

@Ben,如果你沒有找到那個wiki頁面,你能否詳述一下你的工作流程? – romainl 2014-10-02 16:40:37