2010-01-05 2 views
54

Я пытался переключиться с вкладки на другую вкладку (которая не может быть смежной с предыдущей вкладкой) в VIM. Есть ли ярлык для этого, как мы Ctrl - р/Ctrl - п для переключения на соседних вкладках?Переключение на конкретную вкладку в VIM

Кроме того, я пытался написать сопоставление клавиш, которое даст переменную как входной сигнал функции и выполнит операцию. Например, допустим, я нажимаю Ctrl - и функция (написанная пользователем) вызывается и вводится как вход 5, а курсор переходит на вкладку 5 (если открыта пятая вкладка).

Не могли бы вы предложить, как это можно сделать?

+0

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

+0

@James, чтобы узнать, есть ли это по двум вопросам, нужно знать, существует ли встроенная функция для перехода на N-я табуляция. ;-) –

+0

Спасибо за все ответы. Но как можно написать функцию, которая принимает переменный ввод. писать Nmap TT : tabnew кажется легко но как связывание: tabnew х (где переменная х) ключ может быть сделано? – Sumit

ответ

77

использование 5gt, чтобы переключиться на вкладку 5

: tabn [доб] {число}

{число} GT

Перейти к закладке {число}. Первая закладка имеет номер один.

вы можете также связать его с ключом:

:map <C-5> 5gt 
:imap <C-5> <C-O>5gt 

(Mapping Ctrl-<number> может отличаться/невозможно для некоторых терминалов Рассмотрим Alt-<number> тогда.)

+4

Будьте ** ОЧЕНЬ ** старайтесь не смешивать ': tabnext' и' tabNext' – puk

+0

В чем разница ...? – dmonopoly

+3

': tabnext' = следующая вкладка; ': tabNext' = предыдущая вкладка –

17

Отбор только на ваш первый вопрос, и цитирование от help tabs в Vim:

{count}gt  Go to tab page {count}. The first tab page has number one. 
{count}gT  Go {count} tab pages back. Wraps around from the first one 
       to the last one. 

т.е., набрав 3gt переходит на третью вкладку, 3gT идет 3 вкладки назад с текущей вкладки.

+1

не совсем. 3gt перемещается на третью вкладку, а не 3 вкладки вперед –

+0

urgh. Это ужасно. –

+0

Чтобы сделать '3gt' переход на третью вкладку, сделайте' nnoremap gt: normal! ' – rampion

2

Просто для обмена ключами для перехода непосредственно на конкретную вкладку. Пожалуйста, поместите их в _vimrc и заставьте его работать.

" Jump to particular tab directly 
"NORMAL mode bindings for gvim 
noremap <unique> <M-1> 1gt 
noremap <unique> <M-2> 2gt 
noremap <unique> <M-3> 3gt 
noremap <unique> <M-4> 4gt 
noremap <unique> <M-5> 5gt 
noremap <unique> <M-6> 6gt 
noremap <unique> <M-7> 7gt 
noremap <unique> <M-8> 8gt 
noremap <unique> <M-9> 9gt 
noremap <unique> <M-0> 10gt 

"INSERT mode bindings for gvim 
inoremap <unique> <M-1> <C-O>1gt 
inoremap <unique> <M-2> <C-O>2gt 
inoremap <unique> <M-3> <C-O>3gt 
inoremap <unique> <M-4> <C-O>4gt 
inoremap <unique> <M-5> <C-O>5gt 
inoremap <unique> <M-6> <C-O>6gt 
inoremap <unique> <M-7> <C-O>7gt 
inoremap <unique> <M-8> <C-O>8gt 
inoremap <unique> <M-9> <C-O>9gt 
inoremap <unique> <M-0> <C-O>10gt 
Смежные вопросы