Vim-中的-buffer-window-和-tab-page
区分 buffer, window, tab page
buffer
- buffer 是 in-memory text of file (也就是加载到内存中的文件)
- 每一个缓冲区都有一个唯一的编号 (buffer number), 可以用
:ls
查看 - 每一个 window 可以显示一个 buffer, 多个 window 可以显示同一个 buffer
window
- 一个用于显示 buffer 的区域
- 每一个 window 也有唯一的序号 (window id)
tab page
- 用于组织 window 的容器
- 每一个标签页都可以包含一个或多个 window
- 每一个 tab page 也有唯一的序号, 用
:tabs
查看
Buffer
一个 buffer 有三种状态 (附有用 :buffers
显示的状态):
active
, 加载了文件, 且显示在 window 上 (‘a’)hidden
, 加载了文件, 但没有显示在 window 上 (‘h’)inactive
, 没有加载文件, 也没有显示在 window 上 (‘ ‘)
bufname({bufnr})
用 buffer number (buffer 的唯一标识符就叫 buffer number) 获取 buffer 名称.
可用 bufnr()
得到当前 buffer 的 buffer number.
Window
Window 中有 winid
(window id) 和 winnr
(window number).
winid
是唯一标识符, 在一个 vim session 中不改变winnr
会在 window 的 open 和 close 中改变, 且仅在一个 tab 中 unique
可以用 win_getid()
获取当前 window 的 winid.
winnr()
返回当前 window 的 winnr.
win_id2tabwin({winid})
用 winid 作为参数, 返回一个包含 tab number 和 winnr 的 list [tabnr, winnr]
.
Vim-中的-buffer-window-和-tab-page
http://example.com/2024/01/13/Vim-中的-buffer-window-和-tab-page/