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