与vim航空公司在vim中的选项卡之间切换



我使用的是vim-airlines插件,它运行得很好,但是,在选项卡之间切换的唯一方法是用户:bp or :bn,这是:bprevious or :bnext的快捷方式。问题是,如果我在第一个选项卡上,并且想切换到最后一个选项卡,即第10个选项卡,那么我必须键入:bn十次才能到达如何直接切换也许按下arrow keys键会有好处。

您的问题是安装了一个插件,该插件旨在混淆Vim的常规命令和工作流,而甚至不知道这些常规方法。你走的捷径会把你带到一条死胡同,所以你唯一合理的解决方案是回到主干道上,在没有训练轮子和拐杖的情况下正确学习Vim。

所以…从你的问题来看,你似乎在使用航空公司所谓的"智能表格线",它在一个假表格线中显示你打开的缓冲区

如果这是一条真正的表格线,它们实际上就是选项卡页,您可以使用它们自己的一组命令在它们之间移动。

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

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

当然,为了方便起见,这些都可以映射。

但是…该插件不显示缓冲区编号,所以你不能使用:b10可靠地跳到你的假"表线"中的第十个缓冲区,所以这是你工具带上少了一个工具。

一些特殊的缓冲区,如快速修复列表,可以通过:bn/:bn访问,而不会——很可能——被列在你的假"表行"中,这使得你的假"表行"是一个相当糟糕的抽象,即使不考虑标签的明显限制。

当你真正使用标签页时,这个假的"tabline"会变成半真实的"tableline",这是一种特殊的行为。

将两个非常不同的——而且以其自身的方式强大的——概念融合成一个单一的、庸俗的概念并不是一个好主意。

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

参考:

:help buffers
:help tab-page

同意@romainl的意见,但为了方便起见,您可以随时将+选项卡映射到:bn或:bp。

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

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

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

如果您使用vim-airlines,它只会暴露<Plug>AirlineSelectTab密钥,您可以将它们映射到方便的密钥序列:

  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

关于映射,请参见例如。https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-教程(第1部分)

我已经将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航空插件。

参考:使用vim选项卡页面

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

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

最新更新