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.

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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.