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/
作者
Jie
发布于
2024年1月13日
许可协议