2015-10-02 56 views
4

當Vim的打開文件我幾乎總是做這樣的事情:在vim瀏覽文件系統 - >:發現與編輯

:e subDir/**/file<ctrl-d> 

但在文檔和基本上每個StackOverflow上/博客文章我讀了它似乎人們使用「查找」我使用「編輯」的方式。

我使用編輯命令而不是find命令丟失了什麼?

+5

'find'在vim中搜索''path''。而':edit'只將當前工作目錄作爲根目錄。 – FDinoff

回答

5

:edit被默認限制在工作目錄中:如果您需要編輯不在工作目錄下的文件,則必須提供絕對路徑或相對於工作目錄的路徑。另外,你需要提供必要的數據。

:find表面上與:edit非常相似,但(大)區別在於它在path選項中指定的目錄中查找文件。 path是什麼讓:find:edit更有趣。

使用set path=,,您實質上獲得與:e foo相同的行爲。

使用set path=**您基本上獲得與:e **/foo相同的行爲,除非不必使用任何glob。

使用set path=.,**您還可以訪問與當前文件位於同一目錄中的文件。

使用set path=.,**,/path/to/some/central/vendor/directory您還可以訪問該目錄中的文件...等等。

+3

可能值得注意的是,將'**'加入''path''並不是真正意圖使用「路徑」的方式。 「path」的目的是指向「包含」代碼的根目錄(比如Python模塊,Java源代碼依賴項,Vim插件包等)。然後':find'與':edit'非常相似,只是它使用多個搜索目錄根,而不僅僅是工作目錄。 – glts