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

n8ghc7c1  于 2022-11-11  发布在  其他
关注(0)|答案(6)|浏览(458)

我使用的是vim-airline插件,在选项卡之间切换的唯一方法是使用:bp or :bn,这是:bprevious or :bnext的快捷方式。这样做的问题是,如果我在第一个选项卡上,并希望切换到最后一个选项卡,即第10个选项卡,那么我必须键入:bn十次才能到达那里。**我如何直接切换?**也许按arrow keys的东西会有好处。

iovurdzv

iovurdzv1#

你的问题是你安装了一个插件,用来混淆Vim的常规命令和工作流程,而你甚至不知道这些常规方法。你走的捷径把你带到了一个死胡同,所以你唯一合理的解决方案是回到主路上,正确地学习Vim,而不是学习辅助轮和拐杖。
所以...从你的问题来看,你似乎在使用Airline所谓的“智能标签行”,它会在一个假标签行中显示你打开的 * 缓冲区 *。
如果它是一个真实的的标签行,它们实际上是 * 标签页 *,您可以使用它们自己的一组命令在它们之间移动。
但它们是 * 缓冲区 *,是的,您应该使用以下命令在它们之间移动:

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

当然,为了方便起见,您可以将这些数据全部Map。
但是......该插件不显示缓冲区编号,因此您无法使用:b10可靠地跳转到您的假“tabline”中的第十个缓冲区,因此您的工具带中少了一个工具。
一些特殊的缓冲区,比如quickfix列表,可以通过:bn/:bn访问,而不需要--很可能--在你的伪“标签行”中列出,这使得你的伪“标签行”成为一个相当糟糕的抽象,即使不考虑标签的明显局限性。
还有一种特殊的行为,即假的“标签行”,当你真正使用标签页时,它会变成半真实的“标签行”。
把两个截然不同的概念合并成一个单一的概念并不是一个好主意。
我建议您禁用该选项,并使用缓冲区和选项卡页,因为它们是要使用的。
参考编号:

:help buffers
:help tab-page
hgtggwj0

hgtggwj02#

同意@romainl,但你可以随时将你的+tabMap到:bn或:bp,以方便你。
" Tab navigation like Firefox. nnoremap <C-S-tab> :bprevious<CR> nnoremap <C-tab> :bnext<CR>

57hvy0tb

57hvy0tb3#

除了Rafi的答案之外,还可以将其放在.vimrc中,以便直接访问buffer / airline选项卡。

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
iyr7buue

iyr7buue4#

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

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
0qx6xfy6

0qx6xfy65#

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

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

56lgkhnf6#

我已经将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航空插件以及工程。
参考:Using vim tab pages

相关问题