Answers:
否(并非没有删除缓冲区)。
打开缓冲区后,Vim不支持手动分配缓冲区编号或对缓冲区重新排序。它的原理是,每个缓冲区都获得一个在该缓冲区的生命周期内固定的标识符(在帮助中:ls
,它指出“每个缓冲区都有一个唯一的编号。该编号不会更改...”)。
不过,您可以使用参数列表。将所有打开的缓冲区放入参数列表,删除所有未完成的缓冲区,然后打开参数列表中的所有内容。以下命令将完成此操作:
:argdel *
(删除现有的参数列表):bufdo argadd %
(对于每个缓冲区,将缓冲区的路径添加到列表中):1,1000bd
(删除缓冲区1到1000;可能有更好的方法来执行此操作):argdo e
(对于每个参数,请编辑该参数)这将为您留出一个额外的空缓冲区,当您删除所有先前的缓冲区时,vim会打开该缓冲区,但这与您想要的功能相当接近。您可以只是:bd
额外的缓冲区。
“缓冲区数字变得疯狂”,告诉我!到一天结束时,我很容易超过100个缓冲区。但是幸运的是,正如您在该动画中看到的那样,您已经tab完成了缓冲区名称的设置。
因此,即使您不能重新编号缓冲区,您仍然可以轻松跳来跳去。
我不知道动画是否清楚,但是“制表符完成”与命令行制表符完成不同。它更像是“歧义解决标签替换器”。这意味着我必须在命令行中键入,sc
tab然后se
tab在这里vim进行“ se”搜索并将其替换为第一个(也是唯一一个)匹配项。如果输入test
tab,它将与'generate_test_data.py'匹配,然后tab又将与'scripts / setup_test_data.sh'匹配,然后tab又会循环回去,依此类推。
关键是您可以养成打字的习惯,而只是:b <minimum amount of unambiguous characters>
tab跳到所需的文档。我认为这甚至比记住“我的缓冲区是1:foo 2:bar 3:etc”(这是我还是新手时的做法)要好得多。
您可以使用vim-airline。此插件的行为可能会解决您的问题:
这不会更改缓冲区编号,但是您可以在选项卡行中按行号从左到右选择一个缓冲区。这是我在以下航空公司的设置.vimrc
:
"set airline
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
let g:airline#extensions#tabline#show_tab_nr = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#tabline#fnametruncate = 16
let g:airline#extensions#tabline#fnamecollapse = 2
let mapleader=","
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
switch_buffers_and_tabs=1
和buffer_idx_mode=0