it-swarm.com.ru

В vim как быстро переключаться между вкладками?

В гном-терминале я могу просто нажать Alt + (123и т. д.) для переключения на определенные вкладки. Я также могу использовать Ctrl + (PgUp / PgDn) переключаться между вкладками (правда, менее удобно, но его можно переназначить).

Если я хочу использовать вкладки vim вместо вкладок терминала gnome, набирать :tabn и :tabp довольно громоздко. Я мог бы сопоставить их с сочетаниями клавиш, но это все же намного менее удобно, чем переход непосредственно к вкладке 4 с Alt + 4,.

Есть ли более быстрый способ переключения между вкладками в vim?

119
Matthew

Следующая вкладка: gt

Предыдущая вкладка: gT

Нумерованная вкладка: nNNgt

196
ephemient

Почему бы не использовать своего лидера (мой лидер сопоставлен с Space):

" Go to tab by number
noremap <leader>1 1gt
noremap <leader>2 2gt
noremap <leader>3 3gt
noremap <leader>4 4gt
noremap <leader>5 5gt
noremap <leader>6 6gt
noremap <leader>7 7gt
noremap <leader>8 8gt
noremap <leader>9 9gt
noremap <leader>0 :tablast<cr>

Вы можете использовать настройки ниже для переключения между текущей и последней активной вкладкой (здесь она отображается на Ctrl+L, т.е. <c-l>):

" Go to last active tab

au TabLeave * let g:lasttab = tabpagenr()
nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
39
unblevable

Это самый простой способ, который я нашел, чтобы переключаться между вкладками быстрее и проще.
Добавьте следующие строки в ваш .vimrc и наслаждайтесь им, больше трюков о вкладках vim здесь .

nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

Теперь вы можете использовать Ctrl идти налево и Ctrl идти прямо.

Или просто используйте:
1gt перейти на первую вкладку,
2gt чтобы перейти на вкладку два,
3gt перейти на вкладку три и т. д. ... теперь у вас есть идея.

21
Arnold Gandarillas

Поскольку я работаю на Mac и не использую MacVim (но обычный vim в терминале), у меня возникли некоторые трудности с передачей комбинаций клавиш в терминал.

Самый совместимый (и для меня самый удобный) способ быстро переключать вкладки можно найти на сайте Vim Wikia .

Поместите в свой файл .vimrc:

nnoremap H gT
nnoremap L gt

Теперь Shift-h (заглавная H) и Shift-l (заглавная L) быстро переключат вас между вкладками и следуют соглашению, что h и l соответствуют слева и справа в vim на обычной клавиатуре qwerty.

11
Stefan Magnuson

(К сожалению) vim также использует CtrlPgDn/PgUp циклически переключаться между вкладками. Вам нужно будет использовать map для сопоставления tabn/tabp с чем-то пригодным для использования.

1
Ignacio Vazquez-Abrams

Добавьте их в .vimrc для включения горячих клавиш навигации по вкладкам:

<ctrl-l> переключение между двумя последними вкладками;

<ctrl-j/k> перейти на последнюю/следующую вкладку;

<ctrl-t> открыть новую вкладку.

" tab navigation: Alt or Ctrl+Shift may not work in terminal: " http://vim.wikia.com/wiki/Alternative_tab_navigation " Tab navigation like Firefox: only 'open new tab' works in terminal nnoremap <C-t> :tabnew<CR> inoremap <C-t> <Esc>:tabnew<CR> " move to the previous/next tabpage. nnoremap <C-j> gT nnoremap <C-k> gt " Go to last active tab au TabLeave * let g:lasttab = tabpagenr() nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr> vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>

0
Mengqi Ji

Если вы используете gvim или подобное (то есть что-то вне терминала), вы можете имитировать поведение gnome-terminal, которое вы описываете:

" Map alt-x keys to jump to a tab
for i in range(1, 8)
  execute "nmap \<M-" . i . "> " . i . "gt"
endfor
nmap <M-9> :tablast<CR>

Поэтому alt-1 переходит на первую вкладку и т.д. Но alt-9 переходит на последнюю вкладку (как в Chrome).

Возможно, вы захотите обернуть это в if has("gui_running") (хотя это, похоже, не работает с Neovim) или поместить это в .gvimrc.

0
Joe Freeman