如何關閉Vim中的單個緩衝區(多個)?

我在Vim中打開了幾個文件,例如,運行 php

vim a/*.php

打開23個文件。 vim

而後我進行編輯並運行如下兩次 bash

:q

它關閉了我全部的緩衝區。 spa

如何在Vim中只關閉一個緩衝區? 命令行


#1樓

而不是瀏覽: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命令首先查找其編號。


#2樓

怎麼樣

vim -O a a

這樣你就能夠編輯左邊的單個文件並導航右邊的整個目錄......只是一個想法,而不是解決方案......


#3樓

使用:buffers檢查緩衝區ID

你會看到那裏的緩衝區列表

1  a.php
2  b.php
3  c.php

若是你想從緩衝區中刪除b.php

:2bw

若是要從緩衝區中刪除/關閉全部內容

:1,3bw

#4樓

使用:

  • :ls - 列出緩衝區
  • :bd#n #n - 關閉緩衝區,其中#n是緩衝區編號(使用ls來獲取它)

例子:

  • 刪除緩衝區2:

    :bd2

#5樓

若是之前的答案沒有明顯這一點:

:bd將關閉當前緩衝區。 若是您不想獲取緩衝區列表。

相關文章
相關標籤/搜索