2009-01-12 52 views
23

我在vim打開的文件的一個稍長的列表,看起來像這樣:如何在vim中的文件列表中打開文件?

/dir1/file1 
/dir2/file2 
/dir2/file3 
..... 

我怎樣才能把它們全部打開一個接一個最簡單的方法可能在vim的同一個會話要麼拆分或編輯?

+0

你說「我讓他們打開」,然後問「我怎麼打開它們?」 如果是前者,Paul Tomblin的回答是給你的 - :n和:prev – 2009-01-13 00:14:53

+0

或者它是你在Vim中打開的實際列表嗎? – seanhodges 2009-01-13 08:36:03

+0

只是好奇,但爲什麼這個社區維基? – Hasturkun 2009-01-13 10:16:15

回答

44

我會用-p製表符

vim -p `cat yourlistoffiles` 
4

你可以做以下

cat file | xargs vim 

其中,「文件」包含文件列表,這將在同一Vim會話打開文件。像往常一樣,打開多個緩衝區時,可以使用:bn和backward:bp來前進。

+1

..無論文件的數量大於xargs的分割閾值,在這種情況下,您將獲得多個vim會話。 – 2009-01-12 22:38:06

+0

使用xargs你可以處理數以萬計的文件,你是否建議像命令行一樣在命令行中輸入這些文件,這似乎不太實際。 – 2009-01-12 23:31:03

0

這是因爲打字

vim /dir1/file1 /dir2/file1 /dir2/file2 ... 

一旦你那樣簡單在vim中,你可以用「:n」切換到下一個文件,「:prev」切換到前一個文件即

8

我會假設你有Vim內部打開文件列表,並希望在整個列表模擬「GF」命令

編輯.vimrc,包括這樣的功能:

function Openall() 
    edit <cfile> 
    bfirst 
endfunction 

然後,您可以使用可視模式(1G,Shift-V,G)並鍵入「:call Openall()」來突出顯示整個文件(或要打開的路徑集)。之後,命令行將顯示:

:'<,'>call Openall() 

這將在所有突出顯示的行中運行新的Openall()函數。

按Enter鍵,所有文件將在後臺緩衝區中打開。然後您可以使用常用的緩衝區命令訪問它們。 :ls會將它們顯示爲一個列表。

0

我的searchInRuntime插件有一個:Sp和a:Vsp命令,它會在被調用時執行這個技巧。但是,這些文件必須存在。

11

您可以使用QuickFix模式,如下

:set errorformat=%f 
:cf myfilelist 

在這一點上,你可以使用正常的quickfix快捷鍵要經過你的文件,:cn下一個文件,:cp的前一和:cr去到第一次。

編輯:

哦,如果你想讀從當前緩衝區的列表,上面

0

我經常需要打開已在我的SVN結賬被修改過的文件的改變列表。 這一個班輪工程打開vim選項卡中的所有修改後的文件。

svn st | grep ^M | awk "{print($2)}" | xargs vim -p 
2

我想您在VIM選擇和列表。某個擴展名的所有文件。從您的主目錄或特定來源。

find . -name "*.sh" | vim - 

然後在vim中,你可以搜索和查看這個潛在的巨大列表。 (另一主題)

你找到了你的文件,現在你想打開它在拆分?

CTRL-W F      *CTRL-W_F* 
    Split current window in two. Edit file name under cursor and 
    jump to the line number following the file name. See |gF| for 
    details on how the line number is obtained. 
    {not available when the |+file_in_path| feature was disabled 
    at compile time} 


CTRL-W gf      *CTRL-W_gf* 
    Open a new tab page and edit the file name under the cursor. 
    Like "tab split" and "gf", but the new tab page isn't created 
    if the file does not exist. 
    {not available when the |+file_in_path| feature was disabled 
    at compile time} 
相關問題