1. 程式人生 > 實用技巧 >(四)、vim的緩衝區、標籤、視窗操作

(四)、vim的緩衝區、標籤、視窗操作

1、緩衝區的基本操作

a、檔案與緩衝區的區別

vim file1 開啟一個檔案時,其實是從磁碟中讀取檔案到記憶體中,檔案的內容會被載入到緩衝區中,

這個緩衝區在一個視窗上顯示,所以他是一個已啟用的緩衝區,現在可以使用 :e file2 命令載入另一

個檔案,file將會變成一個隱藏的緩衝區,並且 file2 變成已啟用緩衝區,vim的一些操作是在操作緩

衝區,當使用vim的儲存命令時,vim才將緩衝區寫會給檔案。

命令 用途
:bprev 跳轉到前一個buffer
:bnext 跳轉到後一個buffer
:bfirst 跳轉到第一個buffer
:blast 跳轉到最後一個buffer
:buffer num 啟用載入第num個檔案
:w 將當前buffer寫入檔案
:e 重新將檔案內容載入到緩衝區
:qa! 關閉所有buffer,且不儲存
:wa! 儲存所有buffer
:ball 為每一個buffer開啟一個視窗
:bdelete num 或者 檔名 從緩衝區刪除第n個檔案
:badd filename 新增一個緩衝區,指定的檔案會被載入到緩衝區列表中
:buffers, :files :ls 列出當前編輯中的緩衝區資訊,第一個數字是緩衝區的標號,第二個是緩衝區當前的狀態

2、視窗

視窗是緩衝區的顯示區域,既可以開啟多個視窗,在這些視窗中顯示同一個緩衝區,也可以在每一個窗口裡載入不同的緩衝區。

命令 用途
s 水平切分當前視窗,新視窗仍顯示當前緩衝區
v 水平切分當前視窗,新視窗仍顯示當前緩衝區
sp 水平切分當前視窗,新視窗仍顯示當前緩衝區
vsp 水平切分當前視窗,新視窗仍顯示當前緩衝區
w 在視窗間迴圈切換
h 切換到左邊的視窗
j 切換到下邊的視窗
k 切換到上邊的視窗
l 切換到右邊的視窗
c 關閉活動視窗
o 只保留活動視窗,關閉其他所有視窗

3.標籤頁

Vim 的標籤頁介面和其他許多文字編輯器不同,在Vim中,可以用標籤頁把視窗組織到一系列

工作區中。典型文字編輯器的圖形介面(GUI)有一個用於編輯檔案的主工作區,還有一個顯

示當前工程目錄樹的側邊欄。如果點選側邊欄中的檔案,它會在主工作區為所選中的檔案開啟

一個新標籤頁。每個開啟的檔案都會建立一個新標籤頁。在此模型中,可以說標籤頁代表了當

前開啟的檔案。Vim 的標籤頁與緩衝區並非一一對應的關係,相反,應該把標籤頁想成容納一

系列視窗的容器。每個標籤頁都可包含一個或多個視窗。

命令用途
:tabe[dit] {filename} 在新標籤頁中開啟 {filename}
:tabc[lose] 關閉當前標籤頁及其中的所有視窗
:tabo[nly] {filename} 只保留活動標籤頁,關閉所有其他標籤頁
:tabn[ext] {N} 切換到編號為 {N} 的標籤頁
:tabn[ext] 切換到下一標籤頁
:tabp[revious] 切換到上一標籤頁

4.熱鍵

" 視窗快捷方式
map <s-h> <c-w>h
map <s-l> <c-w>l
map <s-j> <c-w>j
map <s-k> <c-w>k
map <s-w> <c-w>w
map <s-c> <c-w>c
map <s-o> <c-w>o

" buffer 快捷方式
nnoremap <Leader>bn :bn<CR>
nnoremap <Leader>bb :bp<CR>
nnoremap <Leader>bf :bfirst<CR>
nnoremap <Leader>bl :blast<CR>
nnoremap <Leader>bc :bwipe<CR>

" 標籤頁快捷方式
nnoremap <Leader>tp :tabp<CR>
nnoremap <Leader>tn :tabn<CR>
nnoremap <Leader>tc :tabc<CR>
nnoremap <Leader>to :tabo<CR>
nnoremap <Leader>tN :tabn
nnoremap <Leader>te :tabe