(四)、vim的緩衝區、標籤、視窗操作
阿新 • • 發佈:2020-08-17
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