使用vim-airline在vim中的选项卡之间切换

问题描述 投票:6回答:3

我正在使用vim-airline插件工作得很好但是,在标签之间切换的唯一方法是用户:bp or :bn这是:bprevious or :bnext的快捷方式。这个问题是,如果我在第一个选项卡上并且想要切换到最后一个选项卡,即第10个选项卡,那么我必须输入:bn十次才能到达那里。我该如何直接切换?也许紧迫的arrow keys会有所帮助。

vim plugins vim-plugin vim-airline
3个回答
12
投票

您的问题是您安装了一个插件,旨在模糊Vim的常规命令和工作流,甚至不知道这些常规方法。你所采取的捷径让你走向死胡同,所以你唯一合理的解决办法就是回到主干道,正确地学习Vim,而不需要训练轮子和拐杖。

所以......从您的问题来看,您似乎正在使用航空公司所谓的“更智能的标签”,它在虚假的标签中显示您的开放缓冲区。

如果它是一个真正的tabline,它们实际上是标签页,你可以用它们自己的一组命令在它们之间移动。

但它们是缓冲区,是的,您应该使用以下命令在它们之间移动:

:bnext
:bprevious
:bfirst
:blast
:b10
:b <buffer-name>

当然,这些都可以为了您的方便而进行映射。

但是......该插件没有显示缓冲区编号,所以你不能使用:b10可靠地跳到你的假“tabline”中的第十个缓冲区,这样你工具带中的工具就少了一个。

还有一些特殊的缓冲区,比如quickfix列表,可以通过:bn / :bn到达,而不是 - 可能 - 被列在你的假“tabline”中,这样​​即使不考虑标签的明显限制,也会使你的假“tabline”变得相当糟糕。一般来说。

当你真正使用标签页时,那个虚假的“tabline”的特殊行为会变成一个半真实的“tabline”。

把两个截然不同的东西 - 以自己的方式强大 - 将概念合并为一个混合的概念并不是一个好主意。

我建议您禁用该选项并使用缓冲区和标签页,因为它们是要使用的。

参考:

:help buffers
:help tab-page

6
投票

同意@romainl,但您可以随时将+标签映射到:bn或:bp以方便您使用。

" Tab navigation like Firefox. nnoremap <C-S-tab> :bprevious<CR> nnoremap <C-tab> :bnext<CR>


1
投票

除了Rafi的答案之外,将它放在.vimrc中以直接访问缓冲区/航空公司选项卡。

nmap <leader>1 :bfirst<CR>
nmap <leader>2 :bfirst<CR>:bn<CR>
nmap <leader>3 :bfirst<CR>:2bn<CR>
nmap <leader>4 :bfirst<CR>:3bn<CR>
...

或者,你可以加倍航空公司

let g:airline#extensions#tabline#buffer_idx_mode = 1
nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
© www.soinside.com 2019 - 2024. All rights reserved.