2010-01-05 10 views
54

Estaba intentando cambiar de una pestaña a otra (que puede no ser adyacente a la pestaña anterior) en VIM. ¿Hay algún atajo para que, al igual que tenemos Ctrl - p/Ctrl - n para la conmutación de pestañas adyacentes?Cambiar a una pestaña particular en VIM

Además, estaba tratando de escribir una asignación de teclas que dará una variable como entrada para una función y hacer la operación. Por ejemplo, digamos que presiono Ctrl - y una función (escrita por el usuario) se llamará y se dará como entrada 5, y el cursor irá a la pestaña 5 (si hay alguna 5ta pestaña abierta).

¿Puede sugerirnos cómo se puede hacer esto?

+0

Esto se debe dividir en dos preguntas separadas, por lo que puede aceptar dos respuestas separadas para las dos preguntas distintas. –

+0

@James, para saber si esto es para dos preguntas, se debe saber si existe una función incorporada para cambiar a la N-ésima pestaña. ;-) –

+0

Gracias por todas las respuestas. Pero cómo se puede escribir una función que acepte una entrada variable. escribir nmap tt : tabnew parece fácil pero la forma de unión: x tabnew (donde está una variable x) a una tecla se puede hacer? – Sumit

Respuesta

77

uso 5gt para cambiar a la pestaña 5

: tabn [ext] {count}

{count} gt

Ir a la página pestaña {count}. La primera página de pestañas tiene el número uno.

También puede enlazar a una tecla:

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

(Mapeo Ctrl-<number> podría ser diferente/imposible para algunos terminales Considere Alt-<number> a continuación.)

+4

Sea ** MUY ** cuidadoso de no mezclar ': tabnext' y' tabNext' – puk

+0

¿Cuál es la diferencia ...? – dmonopoly

+3

': tabnext' = siguiente pestaña; ': tabNext' = pestaña anterior –

17

Abordar solamente a su primera pregunta, y citando de help tabs en 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. 

es decir, escribir 3gt va a la tercera pestaña, 3gT va 3 pestañas atrás de la pestaña actual.

+1

no exactamente. 3gt se mueve a la tercera pestaña, no a 3 pestañas hacia adelante –

+0

urgh. Eso es urghy. –

+0

Para hacer que '3gt' se mueva a la tercera pestaña, haga' nnoremap gt: normal! gt ' – rampion

2

Solo para compartir la asignación de teclas para saltar directamente a una pestaña en particular. Por favor ponlos en _vimrc y haz que funcione.

" 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 
Cuestiones relacionadas