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

时间:2015-02-28 08:32:22

标签: vim plugins vim-plugin vim-airline

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

6 个答案:

答案 0 :(得分:12)

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

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

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

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

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

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

但是...该插件不会显示缓冲区编号,因此您无法使用:b10可靠地跳转到假“tabline”中的第十个缓冲区,这样您工具带中的工具就少了一个。 / p>

一些特殊的缓冲区,比如quickfix列表,可以通过:bn / :bn来到达,但可能没有 - 可能 - 列在你的假“tabline”中,这样​​就可以使你的虚假“tabline”变得相当糟糕的抽象,即使没有考虑一般标签的明显限制。

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

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

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

参考:

:help buffers
:help tab-page

答案 1 :(得分:6)

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

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

答案 2 :(得分: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

答案 3 :(得分:1)

如果您使用制表符而不是缓冲区

" Tab navigation (works only in gvim, not in console)
nnoremap <C-tab>   gt
nnoremap <C-S-tab> gT

答案 4 :(得分:0)

如果您使用的是 vim-airline,强烈建议您使用 AirlineSelectTab 命令,您可以通过 :help airline 看到它,下面是配置。< /p>

  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
  nmap <leader>0 <Plug>AirlineSelectTab0
  nmap <leader>- <Plug>AirlineSelectPrevTab
  nmap <leader>+ <Plug>AirlineSelectNextTab

答案 5 :(得分:0)

我已将 vim 配置为使用 Ctrl + 箭头键在选项卡之间切换。

Ctrl + 将切换到当前标签左侧的标签。

Ctrl + 将切换到当前标签右侧的标签。

Ctrl + 将切换到第一个标签。

Ctrl + 将切换到最后一个标签。

要实现上述行为,请使用以下几行更新您的 vimrc:

nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
nnoremap <C-Up> :tabfirst<CR>
nnoremap <C-Down> :tablast<CR>

这也适用于 vim-airline 插件。

参考:Using vim tab pages