Mapa Shift + F3 en .vimrc

14

Cuando uso vimgrep con lv expr path/**, me gusta tener un acceso directo para navegar por los resultados. Así que asigné la F3clave como la siguiente:

nnoremap <F3> :lnext<CR>

Ahora me gustaría hacer algo como lo siguiente

nnoremap <SHIFT-F3> :lprevious<CR>

Pero esto no tiene el efecto deseado. ¿Cómo mapeo una tecla F SHIFT?

Actualizar:

La solución es un poco difícil. En las terminales no puedes simplemente mapear Shift+ F3. De hecho, es necesaria una línea adicional como la siguiente:

set <S-F3>=^[O1;2R
nnoremap <S-F3> :lprevious<CR>

Pero no puede copiar y pegar esto, consulte el siguiente enlace en la respuesta correcta.

Trendfischer
fuente

Respuestas:

15

Estás usando Vim en la consola, no GVIM, ¿verdad? Cualquier otra cosa que no sean las teclas de función simple es problemática, y es mejor evitarla; intente usar un prefijo like en su <Leader>lugar. Si realmente desea esto, puede probar las instrucciones en http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim para que funcionen las teclas de función con modificadores.

Ingo Karkat
fuente
Ese enlace fue muy útil, ni siquiera esperaba un problema como este. Aunque no es la respuesta que deseaba leer, es la respuesta correcta en mi opinión. Y siguiendo los consejos con códigos de teclas rápidos, podría asignar la combinación de teclas según lo deseado.
Trendfischer
7

Debe ser <S-F3>no <SHIFT-F3>, ver :help key-notationen Vim.

livibetter
fuente
Sí, esta es la respuesta que quería tener, pero no funcionó de esta manera. Necesitas: configurado para que funcione en una terminal.
Trendfischer
0

Hoy en día no es necesario establecer códigos de teclas adicionales para teclas funcionales, todo lo que necesita es:

nnoremap <s-f3> :lprevious<cr>

Probado en NeoVim.

Alguien por favor pruébelo en VIM limpio para que pueda actualizar esta respuesta.

cprn
fuente