Переключение между вкладками в 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