*22.4*緩衝區列表
vim 編輯器使用術語 "緩衝區" 來描述編輯當中的檔案。實際上,緩衝區是你編輯的檔案
的副本。你修改完緩衝區,就把緩衝區的內容寫進檔案。緩衝區不僅存放檔案內容,而且
隱 藏 的 緩 衝 區
假設你在編輯檔案 one.txt,同時又要編輯檔案 two.txt。你本來可以簡單地用 ":edit
two.txt" 來辦到,但由於你已經修改了 one.txt,那樣做就沒用了。而你又不想在此時
就把 one.txt 存檔。vim 可以為你解決這個問題:
:hide edit two.txt
緩衝區 "one.txt" 從螢幕消失,但 vim 仍然知道你在編輯這個緩衝區,因而保留著它修
改過的文字。這樣的緩衝區稱為隱藏的緩衝區: 緩衝區存放著文字,但你看不見它。
命令 ":hide" 的引數是另乙個命令。它使得那個命令表現得就像 'hidden' 選項已被
設定。你也可以不用 ":hide" 命令而設定 'hidden' 選項。其作用是當離開任何緩衝區
時,該緩衝區變成隱藏。
小心!當你的隱藏的緩衝區已經改動,千萬不要在所有緩衝區存檔之前就退出 vim。
非 激 活 緩 衝 區
乙個緩衝區一經使用,vim 就記住了一些有關該緩衝區的資訊。即使它既不顯示在窗
口內,又非隱藏緩衝區,它也仍然在緩衝區列表上。這樣的緩衝區稱為非啟用緩衝區。一
般而言,
啟用 顯示在視窗內,並載入文字
隱藏 不顯示在視窗內,但載入文字
非啟用 不顯示在視窗內,不載入文字
非啟用緩衝區不會被遺忘,因為 vim 儲存著關於它們的資訊,如標記等。而且記住檔案
名有個好處,你可以調閱你編輯過的檔名,再次編輯它們。
緩 衝 區 列 表
你可以用這個命令檢視緩衝區列表:
:buffers
另乙個作用相當的命令,雖然意思不那麼明白,但鍵入時省事多了:
:ls
其輸出可能像這樣:
1 #h "help.txt" line 62
2 %a+ "usr_21.txt" line 1
3 "usr_toc.txt" line 1
第一欄存放緩衝區號。你可以利用它來編輯檔案,而不用鍵入檔名,參見下文。
緊隨緩衝區號的是些標誌位。然後是檔名,以及游標最後一次停留的行號。
可能出現的標誌位有以下這些 (自左至右):
u 列表外緩衝區 |
unlisted-buffer|。
% 當前緩衝區。
# 輪換緩衝區。
a 啟用緩衝區,緩衝區被載入且顯示。
h 隱藏緩衝區,緩衝區被載入但不顯示。
= 唯讀緩衝區。
- 不可改緩衝區, 'modifiable' 選項不置位。
+ 已修改緩衝區。
編 輯 緩 衝 區
你可以通過指定其緩衝區號來編輯乙個緩衝區,而不必鍵入檔名:
:buffer 2
但獲知緩衝區號的唯一途徑是查閱緩衝區列表。如果不用緩衝區號,你可以用檔名,或
其部分:
:buffer help
vim 將為你鍵入的檔名找到最佳匹配。如果只有乙個緩衝區與之匹配,該緩衝區就被選
用。在這個例子中,被選中的就是 "help.txt"。
要在新視窗中開啟乙個緩衝區:
:sbuffer 3
這方法也適用於檔名。
使 用 緩 衝 區 列 表
你可以用這些命令在緩衝區列表間移動:
:bnext 編輯下乙個緩衝區
:bprevious 編輯前乙個緩衝區
:bfirst 編輯第乙個緩衝區
:blast 編輯最後乙個緩衝區
要從緩衝區列表上刪除乙個緩衝區,用這個命令:
:bdelete 3
同樣,這命令也適用檔名。
如果你刪除了乙個啟用的緩衝區 (顯示在視窗中的緩衝區),你也就關閉了該視窗。如
果你刪除了當前緩衝區,你也就關閉了當前視窗。如果它是最後乙個視窗,vim 將找乙個
緩衝區來編輯。你無法什麼也不編輯!
備註
:
即使用 ":bdelete" 命令刪除了緩衝區以後,vim 依然記得它。這個緩衝區實際
上成了 "列表外" 緩衝區,它不再出現在 ":buffers" 命令所報告的列表中。不
過 ":buffers!" 命令仍會列出 "列表外" 緩衝區 (沒錯,vim 無所不能)。要讓
vim 徹底忘記乙個緩衝區,用 ":bwipe" 命令。另見 'buflisted' 選項。
php 緩衝區,PHP的輸出緩衝區
1 什麼是緩衝區?緩衝區的作用是把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取,最本質的作用就是協調高速cpu和相對緩慢的io裝置 磁碟等 的運作。2 php在執行的時候,在什麼地方有用到緩衝區?當執行php的時候,如果碰到了echo print r之類的會輸出資料的 php就會將要輸出的資料放...
輸入緩衝區與輸出緩衝區
本博文通過一段程式來理解輸入緩衝區與輸出緩衝區。程式如下 author wanghao created time thu 17 may 2018 06 03 12 ampdt file name test.c description include int main int argc,const c...
使用者程序緩衝區和核心緩衝區
常常聽到有程式設計師會跟你討論 我們在讀寫檔案的時候,系統是有快取的 但實際上有一部分人把使用者程序緩衝區和系統空間的緩衝區的概念混淆了,包括這兩種緩衝區的用法和所要解決的問題,還有其它類似的概念。本文就來區分一下不同的緩衝區概念 主要針對類unix平台 使用者程序和作業系統的關係 首先我用一張圖來...