Mudança de mapa + F3 em .vimrc

14

Ao usar o vimgrep lv expr path/**, eu gosto de ter um atalho para navegar nos resultados. Então, mapeei a F3chave da seguinte maneira:

nnoremap <F3> :lnext<CR>

Agora eu gostaria de fazer algo como o seguinte

nnoremap <SHIFT-F3> :lprevious<CR>

Mas isso não tem o efeito desejado. Como mapeio uma tecla F SHIFT?

Atualizar:

A solução é um pouco difícil. Nos terminais, você não pode apenas mapear Shift+ F3. De fato, é necessária uma linha adicional como a seguinte:

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

Mas você não pode copiar e colar isso, veja o link abaixo na resposta correta.

Trendfischer
fonte

Respostas:

15

Você está usando o Vim no console, não no GVIM, certo? Qualquer coisa diferente das teclas de função simples é problemática e é melhor evitar; tente usar um prefixo como em <Leader>vez disso. Se você realmente deseja isso, pode tentar as instruções em http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim para obter teclas de função com modificadores funcionando.

Ingo Karkat
fonte
Esse link foi muito útil, eu nem esperava um problema como esse. Embora não seja a resposta que gostaria de ler, é a resposta certa na minha opinião. E seguindo o aviso com códigos de teclas rápidas, eu poderia mapear a combinação de teclas conforme desejado.
Trendfischer 22/11/2012
7

Deve ser <S-F3>não <SHIFT-F3>, consulte :help key-notationno vim.

livibetter
fonte
Sim, esta é a resposta que eu queria ter, mas não funcionou dessa maneira. Você precisa: definido para fazê-lo em um terminal para funcionar.
Trendfischer 22/11/2012
0

Atualmente, a configuração de códigos de chave extras para chaves funcionais não é necessária, tudo o que você precisa é:

nnoremap <s-f3> :lprevious<cr>

Testado no NeoVim.

Alguém por favor tente no VIM limpo para que eu possa atualizar esta resposta.

cprn
fonte