¿Cómo puedo hacer que la página shift + barra espaciadora suba en Vim?
-
07-07-2019 - |
Pregunta
Tengo una entrada en mi .vimrc que hace que la página baje por la ventana gráfica cuando presiono la barra espaciadora. Se ve así:
map <Space> <PageDown>
Quiero crear otra asignación de teclas que suba la vista de la ventana al mantener presionada la tecla Mayús y presionar la barra espaciadora. He intentado las siguientes entradas:
map <Shift><Space> <PageUp>
map <S-Space> <PageUp>
Ninguno de los dos trabaja. ¿Alguien sabe cómo lograr esta funcionalidad?
Solución
No puedes. La solución de CMS funcionará para gVim, pero no en vim porque los terminales no pueden distinguir entre & Lt; Space & Gt; y < S-Space > porque las maldiciones los ven igual. Podría ser posible en el futuro si vim gana el soporte de libtermkey y su terminal admite el correcto & Lt; CSI & Gt; secuencias (xterm lo hace si está configurado correctamente; nada más lo hace todavía).
Otros consejos
Si está utilizando vim dentro de iTerm2, puede asignar el espacio de desplazamiento a ctrl + U enviando la tecla hexadecimal 15. Aquí hay una captura de pantalla:
Para buscar un código hexadecimal para una combinación de ctrl + letra, por ejemplo ctrl + u, puede hacer lo siguiente:
- En vim ingrese el modo de inserción
- Presione ctrl + v luego ctrl + u luego ctrl + c luego ga
- varias representaciones numéricas se imprimirán en la parte inferior
Puede aplicar esta idea a otros emuladores de terminal que admitan la asignación de teclas.
Use esto:
map <Space> ^D " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space
Para obtener el símbolo ^ D y ^ U correctamente, simplemente presione Control-V Control-D y Control-V Control-U
Para OSX:
nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>