Переключение между вкладками в vim с vim-Airlines

Я использую плагин Vim- Aviation, который работает довольно хорошо, однако, единственный способ переключаться между вкладками является для пользователя :bp or :bn что ярлыки для :bprevious or :bnext, Проблема в том, что если я на первой вкладке и хочу перейти на последнюю вкладку, т.е. на 10-ю вкладку, то мне нужно набрать :bn десять раз, чтобы добраться туда. Как я могу переключиться напрямую? Может быть, что-то насущное arrow keys было бы полезно.

6 ответов

Ваша проблема в том, что вы установили плагин, предназначенный для запутывания обычных команд и рабочих процессов Vim, даже не зная этих обычных способов. Выбранный вами путь приведет вас в тупик, поэтому единственное разумное решение - вернуться на главную дорогу и правильно изучить Vim без тренировочных колес и костылей.

Итак... из вашего вопроса, кажется, вы используете так называемую "умную таблицу" авиакомпании, которая отображает ваши открытые буферы в фальшивой табулированной строке.

Если бы это была настоящая табулированная строка, то на самом деле они были бы закладками, и вы могли бы перемещаться между ними с их собственным набором команд.

Но они являются буферами, и да, вы должны перемещаться между ними с помощью этих команд:

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

конечно, все это можно отобразить для вашего удобства.

Но... этот плагин не показывает номера буферов, поэтому вы не можете использовать :b10 надежно перейти к десятому буферу в вашей фальшивой "таблине", так что это на один инструмент меньше в вашем поясе инструментов.

И некоторые специальные буферы, такие как список быстрых исправлений, могут быть доступны с :bn / :bn без - вероятно - присутствия в вашем фальшивом "таблине", что делает вашу фальшивую "таблицу" довольно плохой абстракцией, даже без учета явных ограничений вкладок в целом.

И есть своеобразное поведение этой фальшивой "табуляции", которая становится полуреальной "таблицей", когда вы фактически используете закладки.

Объединение двух совершенно разных - и по-своему мощных - концепций в один убитый - не очень хорошая идея.

Я предлагаю вам отключить эту опцию и использовать буферы и вкладки, так как они предназначены для использования.

Ссылка:

:help buffers
:help tab-page

Согласитесь с @romainl, но вы всегда можете сопоставить вашу вкладку + с:bn или:bp для вашего удобства.

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

В дополнение к ответу Рафи, поместите его в свой.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

если вы используете vim-Airlines, я настоятельно рекомендую использовать 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

Я настроил 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-airlines.

Ссылка: Использование вкладок vim

Если вы используете вкладки вместо буферов

" Tab navigation (works only in gvim, not in console)
nnoremap <C-tab>   gt
nnoremap <C-S-tab> gT
Другие вопросы по тегам