7

tengo las siguientes asignaciones en mi .vimrc:vim mapa no puede <C-Tab> a: tabnext

map <C-S-Tab> :tabprevious<CR> 
nmap <C-S-Tab> :tabprevious<CR> 
imap <C-S-Tab> <Esc>:tabprevious<CR>i 

map <C-Tab> :tabnext<CR> 
nmap <C-Tab> :tabnext<CR> 
imap <C-Tab> <Esc>:tabnext<CR>i 

quiero cambiar las pestañas con Ctrl + Tab adelante y con Ctrl + Shift + Tab hacia atrás. ¿Por qué este mapeo no funciona?

+2

Sus mapeos leen correctamente, es probable que su terminal no reenvíe las claves. Compruebe que el shell puede incluso recibir la pestaña ctrl usando "leer" en bash. Se bloqueará para la entrada de caracteres y le mostrará qué teclas se reciben. En mi xterm, no hay diferencia entre c-tab y c-s-tab. La lectura muestra "^ [[Z" para ambos. HTH. – zen

Respuesta

1

Algo probablemente esté bloqueando a vim para que no vea la C-Tab. Esta podría ser su terminal o su administrador de ventanas.

En algunos SO/WMs puede establecer excepciones a los accesos directos del administrador de ventanas, pero la forma en que lo hace varía de forma alocada entre los WM.

No estoy seguro si hay una solución si es su terminal bloqueando las teclas presionadas.

+0

El administrador de ventanas no es el problema. Si cambio a un tty-terminal sin X11/GUI, el enlace aún no funciona. Yo uso Ubuntu 9.04. – Fu86

8

¿Está utilizando xterm? Si es así, no puede mapear ctrl-tab sin una gran cantidad de hackers. xterm y muchos otros emuladores de terminal no reconocen ctrl-tab y simplemente envían un carácter tab.

Véase mi respuesta aquí para más detalles: Mapping <C-Tab> in my vimrc fails in Ubuntu

O simplemente puede utilizar gvim si eso es adecuado - que debería funcionar sin ningún rededor.

0

oh ... ¿es necesario que se lo asigne? sólo tiene que utilizar esta predefinidos combos:

  • GT: ==: tabnext

  • gT: ==: tabprevious

  • [n] gt: == salto a la pestaña de N, por ejemplo, 1GT, 3GT

definir a muchas claves cortas es fácil, pero ¿cómo se puede recordar todos ellos y no mezclarlos con el 'ctrl + tab', 'alt + tab' (común y habitual corta llaves en la mayoría OS)

revisar esta página para más detalles: http://vim.wikia.com/wiki/Alternative_tab_navigation

0

Todo lo que necesita es xterm.

poner esto en su archivo .Xresources (se puede copiar y pegar en este caso):

xterm*VT100.Translations: #override \ 
      Ctrl ~Shift <Key>Tab: string(0x1b) string("[27;5;9~") \n\ 
      Ctrl Shift <Key>Tab: string(0x1b) string("[27;6;9~") 

A continuación, realice cd ; xrdb .Xresources y reiniciar xterm.


poner esto en su .vimrc:

!! Importante - en lugar de XXXX debe escribir CTRL-V y luego EscO copiar y pegar todo el texto y ejecutar %s/\(set <F1[34]>=\)XXXX/\=submatch(1) . "\33"/g que es copia-pastable (inserte a la <CTRL-R> +).

set timeout timeoutlen=1000 ttimeoutlen=100 
set <F13>=XXXX[27;5;9~ 
nnoremap <F13> gt 
set <F14>=XXXX[27;6;9~ 
nnoremap <F14> gT 

Y reinicie vim.

Listo.

Cuestiones relacionadas