我在Vim中打開了幾個文件,例如,運行 php
vim a/*.php
打開23個文件。 vim
而後我進行編輯並運行如下兩次 bash
:q
它關閉了我全部的緩衝區。 spa
如何在Vim中只關閉一個緩衝區? 命令行
而不是瀏覽:ls命令的輸出並經過指定其編號來刪除(卸載,擦除..)緩衝區,我發現使用文件名一般更有效。 code
例如,在我打開幾個.txt文件以刷新個人一些精細點的記憶以後..複製並粘貼幾行文本以用做各類類型的模板......等等我輸入如下內容: 字符串
:bd txt <Tab>
請注意,匹配的字符串沒必要位於文件名的開頭。 工作流
上面顯示了與屏幕底部的「txt」匹配的文件名列表,並保持我最初輸入的:bd命令不變,準備完成。 模板
這是一個例子: 循環
doc1.txt doc2.txt :bd txt
我能夠在'txt'位上退格並鍵入我想要刪除的文件名,但這變得很是方便的是我沒必要:若是我第二次點擊Tab鍵,Vim會自動完成個人命令第一場比賽:
:bd doc1.txt
若是我想擺脫這個特定的緩衝區,我只須要按Enter鍵。
若是我想要刪除的緩衝區剛好是第二個(第三個......等)匹配,我只須要繼續按Tab鍵使my:bd命令在匹配列表中循環。
固然,此方法也可用於經過如下命令切換到給定緩衝區:b ..:sb ..等。
當設置'隱藏'Vim選項時,這種方法特別有用,由於緩衝區列表可能很快變得很是大,覆蓋幾個屏幕,而且很難找到我正在尋找的特定緩衝區。
要充分利用此功能,最好閱讀如下Vim幫助文件並相應地調整Tab命令行完成的行爲,以便最適合您的工做流程:
:help wildmode
我上面描述的行爲來自如下設置,爲了模仿bash完成,我爲了一致性而選擇了這個設置:
:set wildmode=list:longest,full
與使用緩衝區編號相反,這種方法的優勢在於我一般至少記住給定文件名的一部分,讓我直接定位緩衝區,而沒必要經過:ls命令首先查找其編號。
怎麼樣
vim -O a a
這樣你就能夠編輯左邊的單個文件並導航右邊的整個目錄......只是一個想法,而不是解決方案......
使用:buffers檢查緩衝區ID
你會看到那裏的緩衝區列表
1 a.php 2 b.php 3 c.php
若是你想從緩衝區中刪除b.php
:2bw
若是要從緩衝區中刪除/關閉全部內容
:1,3bw
使用:
:ls
- 列出緩衝區 :bd#n
#n - 關閉緩衝區,其中#n是緩衝區編號(使用ls
來獲取它) 例子:
刪除緩衝區2:
:bd2
若是之前的答案沒有明顯這一點:
:bd將關閉當前緩衝區。 若是您不想獲取緩衝區列表。