Vim
中的 window
和 tab
非常具有迷惑性,跟我们平时所说的 “窗口” 和 “标签页” ,是完全不同的两个概念,请看 vimdoc 给出的定义:
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
,同一个buffer
可以被多个window
显示(一个window
只能显示一个buffer
);tab page
包含了一系列的window
,其实叫layout
更合适,看 这里
来看 Vim
官网上的一幅图:
如何选择
目前在 Vim
中比较成熟的方案是使用 buffer
来模拟我们平时所说的 “标签页”,这样在终端中使用 Vim
的时候,也可以获得一致的体验。有很多的插件可以供选择:
- vim-tabbar-mod
- vim-bufferline
- minibufexpl.vim
- vim-airline (配合
vim-bufferline
一起使用)
我比较推荐 vim-bufferline + vim-airline 的组合,下面给一张截图供参考:
可以在 ~/.vimrc
中添加如下配置,来使用 \ + [1-9]
在 “tab” 中切换:
let g:airline#extensions#tabline#buffer_idx_mode = 1
nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
nmap <leader>3 <Plug>AirlineSelectTab3
nmap <leader>4 <Plug>AirlineSelectTab4
nmap <leader>5 <Plug>AirlineSelectTab5
nmap <leader>6 <Plug>AirlineSelectTab6
nmap <leader>7 <Plug>AirlineSelectTab7
nmap <leader>8 <Plug>AirlineSelectTab8
nmap <leader>9 <Plug>AirlineSelectTab9