1. 緩沖區
文件和緩沖區的區別
vim 打開一個文件時,其實是從磁盤中讀取文件到內存中,vim的一些操作其實是在操作緩沖區,
當使用vim的保存命令時,vim才將緩沖區寫回給文件。
操作緩沖區
命令 | 用途 |
---|---|
:bprev | 跳轉到前一個buffer |
:bnext | 跳轉到后一個buffer |
:bfirst | 跳轉到第一個buffer |
:blast | 跳轉到最后一個buffer |
:w | 將當前buffer寫入文件 |
:e | 重新將文件內容加載到緩沖區(回滾buffer修改) |
:qa! | 關閉所有buffer,且不保存 |
:wa! | 保存所有buffer |
2. 窗口
在Vim 術語中,窗口是緩沖區的顯示區域。既可以打開多個窗口,在這些窗口中顯示同一個緩沖區,
也可以在每個窗口里載入不同的緩沖區。Vim 的窗口管理系統很靈活,可以根據工作的需要來調整
工作區。
操作窗口
命令 | 用途 |
---|---|
|
水平切分當前窗口,新窗口仍顯示當前緩沖區 |
|
水平切分當前窗口,新窗口仍顯示當前緩沖區 |
sp | 水平切分當前窗口,新窗口仍顯示當前緩沖區 |
vsp | 水平切分當前窗口,新窗口仍顯示當前緩沖區 |
|
在窗口間循環切換 |
|
切換到左邊的窗口 |
|
切換到下邊的窗口 |
|
切換到上邊的窗口 |
|
切換到右邊的窗口 |
|
關閉活動窗口 |
|
只保留活動窗口,關閉其他所有窗口 |
3. 標簽頁
Vim 的標簽頁接口和其他許多文本編輯器不同,在Vim中,可以用標簽頁把窗口組織到一系列工作區中。
典型文本編輯器的圖形界面(GUI)有一個用於編輯文件的主工作區,還有一個顯示當前工程目錄樹的側邊欄。
如果點擊側邊欄中的文件,它會在主工作區為所選中的文件打開一個新標簽頁。每個打開的文件都會創建一個新
標簽頁。在此模型中,可以說標簽頁代表了當前打開的文件。
Vim 的標簽頁與緩沖區並非一一對應的關系,相反,應該把標簽頁想成容納一系列窗口的容器。每個標簽頁都可
包含一個或多個窗口。
操作標簽頁
命令 | 用途 |
---|---|
:tabe[dit] {filename} | 在新標簽頁中打開 {filename} |
:tabc[lose] | 關閉當前標簽頁及其中的所有窗口 |
:tabo[nly] {filename} | 只保留活動標簽頁,關閉所有其他標簽頁 |
:tabn[ext] {N} | 切換到編號為 {N} 的標簽頁 |
:tabn[ext] | 切換到下一標簽頁 |
:tabp[revious] | 切換到上一標簽頁 |
4. 設置一下熱鍵
在~/.vimrc
配置一些熱鍵
" 窗口快捷方式
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