2008-11-11 7 views
37

Tengo una entrada en mi .vimrc que hace que sea una página hacia abajo en la ventana gráfica cuando presiono la barra espaciadora. Se ve así:¿Cómo puedo hacer que la página shift + barra espaciadora aparezca en Vim?

map <Space> <PageDown> 

Quiero crear otra asignación de teclas las páginas que el visor cuando presionas la tecla shift y golpear la barra espaciadora. He intentado las siguientes entradas:

map <Shift><Space> <PageUp> 
map <S-Space> <PageUp> 

Tampoco trabajo. ¿Alguien sabe cómo lograr esta funcionalidad?

Respuesta

31

No se puede. La solución de CMS funcionará para gVim, pero no en vim porque los terminales no pueden distinguir entre <Espacio> y < S-Space > porque las maldiciones los ven igual. Podría ser posible en el futuro si vim gana soporte para libtermkey y su terminal admite las secuencias adecuadas de <CSI> (xterm lo hace si está configurado correctamente; nada más lo hace todavía).

+0

¿Podría querer editar su respuesta ... no puede distinguir entre qué? Supongo que te refieres a que el terminal no puede distinguir entre CTRL-SPACE y el ESPACIO simple por sí mismo. – m0j0

+0

Vaya, sí, estaba comiendo todo entre menos que y más que signos. Fijo. – Zathrus

+0

¿Puedes vincular algo que explique qué significa "configurado correctamente"? – Unode

3

Utilice esta:

map <Space> ^D " Pagedown when press Space 
map <S-Space> ^U " Page Up when press Shift Space 

Para obtener el^D y T^símbolo correctamente sólo tiene que pulsar Control-V Control-D, y Control-V Control-T

+0

¡Funciona en mi máquina! :-) –

+4

Al hacer esto, las páginas se abren cuando se usan tanto espacio como espacio de desplazamiento ... Lo he intentado en Debian Linux y OS X. Estoy ejecutando VIM 7.0 y VIM 7.2 respectivamente – jerodsanto

+0

No funciona en mi caja Arch . Probablemente solo funciona en OSX? – Kevin

2

para OSX:

nnoremap <Space> <C-d> 
nnoremap <S-Space> <C-u> 
10

Si está utilizando vim dentro iTerm2 puede asignar turnos espacio a CTRL + T mediante el envío de la llave hexagonal 15. Aquí hay una captura de pantalla:

enter image description here

para buscar un código hexadecimal de una combinación ctrl + letra, por ejemplo Ctrl + U, puede hacer lo siguiente:

  • En vim entrar en el modo de inserción
  • ctrl Hit + v luego Ctrl + U luego Ctrl + C y luego ga
  • diversas representaciones numéricas se imprimirán en la parte inferior

Puede aplicar esta idea a otros emuladores de terminal que admite el mapeo de claves.

Cuestiones relacionadas