VIM 中 Tab,Window,Buffer 概念和操作

概念

執行 :help window可以在 VIM 文檔中得到如下解釋:

  • A buffer is the in-memory text of a file.
  • A window is a viewport on a buffer.
  • A tab page is a collection of windows.

所以,用自己的話概括一下。

  • buffer 是載入到內存的文件內容,可以修改、保存等等。一個文件只有一份。
  • window 是用來顯示 buffer 內容的。
  • tab 頁是用來管理 windows 的,可以組織 window 的佈局等等。
Buffer 常用操作

  • 直接打開文件編輯
:e[dit] [++opt] [+cmd] {fname}
  • 添加文件命到 buffer list,但並不載入。
:bad[d] [+lnum] {fname}
  • 從 buffer 刪除文件,! 爲強制刪除,N 爲 buffer 的序號,bufname 爲 buf 列表中顯示的名字。
:bd[elete][!] [N] 
:bd[elete][!] {bufname}
:N,Mbd[elete][!]
  • 打開 buffer 列表中的一個 buffer
:[N]b[uffer][!] [+cmd] [N]
:[N]b[uffer][!] [+cmd] {bufname}
:[N]sb[uffer] [+cmd] [N]
:[N]sb[uffer] [+cmd] {bufname}

下面的命令也都可以加 s 來 split window

:[N]bn[ext][!] [+cmd] [N]
:[N]bp[revious][!] [+cmd] [N]
:bf[irst][!] [+cmd]
:bl[ast][!] [+cmd]
:[N]bm[modified][!] [+cmd] [N]
  • 打開 buffer list 中全部的 buffer,下面的第一個是隻打開已經 loaded 的 buffer,N 可以指定最大數目
:[N]unh[ide] [N]
:[N]ba[all] [N]
  • buffer 切換的相關操作。制定 N 會跳到特定序號的 buffer。不指定 N 會在上一個 buffer 來回切換(被標爲 # 的 buffer)。實測按 CTRL + 6 就可以了。
[N] CTRL - ^
  • 顯示所有已經載入的 buffer,特殊的 buffer 比如:help 並不會在這個列表裏,因爲它屬於 unlisted-buffer,詳情見文檔特殊 buffer 部分。不過如果加上 ! 標誌位,那麼會列出所有的 buffer
:ls[!] [flags]
Window 常用操作
  • 打開一個空白窗口
:new
:vnew
  • 用多個窗口打開多個文件, 用 N 個窗口
vim -o/O[N] file1 file2 file3
  • 退出窗口
:{count}q[uit]!
CTRL-W q
  • 關閉窗口
:clo[se][!]
CTRL-W c
  • 保留當前窗口,退出其他窗口
:only
CTRL-W o
  • 拆分窗口
:[N]sp[lit] [++opt] [+cmd] [file] 
:[N]vsp[lit] [++opt] [+cmd] [file] 
  • 窗口之間跳轉
CTRL-W j/k/h/l/w
  • 移動窗口
CTRL-W r/R	輪換窗口交換
CTRL-W x/X	與相鄰窗口交換
  • 調整窗口大小
CTRL-W =   等分窗口
CTRL-W _   當前屏幕高度擴展到最大, (shift + -) 
CTRL-W |   當前屏幕寬度擴展到最大, (shift + \) 
CTRL-W >/< 調整寬度
CTRL-W +/- 調整高度
  • 多個 window 可以編輯同一個 buffer,而且他們可以同步顯示。修改一個另一個也會跟着變化。
Tabpage 常用操作
  • 打開一個標籤頁
:[count]tabe[dit] [++opt] [+cmd] {file}
  • 關閉標籤頁
:{count}tabc[lose][!] 關閉當前標籤頁
:{count}tabo[nly][!]  關閉其餘標籤頁
  • 跳轉標籤頁
{count}gt 正向跳轉到第 count 個 page,第一個標籤頁是 1
{count}gT 反向跳轉到第 count 個 page
:tabr[ewind] 跳到第一個
:tabl[ast]   跳到最後一個
  • 列出所有標籤頁
:tabs
  • 移動標籤頁
:tabm[ove] [N] 移動到第N個頁面位置
:tabm[ove] +/-[N] 向前或向後移動N個位置
  • 對多個標籤頁執行同一個命令
:[range]tabd[o] {cmd}	所有標籤頁號在 range 範圍內的標籤,都會執行 cmd。
  • 用多個標籤頁打開多個文件
vim -p file1 file2 file3	
幫助

在 VIM 中,可以通過下面的幫助命令,來查看相關的幫助文檔。

:help window
:help tabpage
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章