2013-04-11 62 views
5

做使用各種標準的擴展我的Vim環境的完全重新安裝後有一個行爲惹惱了我頗多:避免Vim的保持關閉在後臺打開的緩衝區

當我在拆分窗口中打開一個文件並再次關閉該窗口(「:wq」)Vim似乎保持在後臺打開文件緩衝區。當我現在嘗試在新的Vim實例的不同shell選項卡中打開該文件時,交換文件仍然存在,這使我無法編輯該文件。

我想有一個設置讓Vim保持緩衝區打開,但是當我關閉分割時隱藏,但是我找不到它是哪一個。我真正想要的是,當關閉分割時,Vim確實關閉了緩衝區,以便我可以在並行Vim會話中再次打開相應的文件。

我期望的是,只要最後一個顯示窗口的窗口通過「:q」關閉,緩衝區就會關閉。

回答

7

使用:set hidden?檢查hidden選項的值。默認情況下,vim的這個設置爲nohidden,它應該產生你所要求的行爲;緩衝區在被拋棄時被卸載(意味着沒有窗口顯示它們)。有可能這個設置被設置爲hidden,這會導致您遇到的行爲;緩衝區在放棄時會隱藏。

:help 'hidden'瞭解更多信息。

+0

這正是我所錯過的。謝謝! :) – tobyS 2013-04-12 16:54:20

0

我不知道你是如何在其他窗口或按Ctrl使用按CtrlW¯¯按CtrlØW¯¯按Ctrlq關閉拆分,例如,但我不要認爲這應該會關閉緩衝區。分裂只是一種窗口管理方法,而不是一種緩衝管理方法。

如果在分割中想要關閉緩衝區及其窗口,爲什麼不使用:bd?它會明確關閉緩衝區。

+0

我通常使用「:q」關閉分割,我期望關閉窗口以及緩衝區。至少這是我習慣的行爲。 – tobyS 2013-04-11 12:34:04

+0

@tobyS:感謝您的澄清。如果您檢查':help:q',它確實會說它只會退出*窗口*,但它不會在緩衝區中顯示任何內容。所以這是正常的行爲。 – 2013-04-11 13:48:50

0

您在尋找:bw[ipeout]的。

2

我認爲你使窗口混淆緩衝區。可以找到一個很好的解釋here。我也建議這read。它有一個腳本示例,在不關閉窗口的情況下關閉緩衝區,這應該是您描述的效果。

乾杯,我希望有所幫助。

+0

對不起,混淆了術語。我更新了這個問題,試圖澄清我期待的行爲。據我所知,這兩個參考文獻都沒有對此進行解釋,是嗎? – tobyS 2013-04-11 13:26:23