Como você não define o tempo limite para um remapeamento específico?


7

A questão surge de um problema no uso de uma configuração remapeada enorme, para que o layout do bépo seja praticamente o mesmo que o qwerty no modo normal, pelo menos para comandos de pressionamento de tecla única.

Selecionando texto usando o modo de seleção visual, pressionando o ique está configurado como noremap i d, seria de esperar que o texto fosse excluído imediatamente. Mas não é acionado imediatamente; está aguardando uma possível segunda chave.

Definir timeoutlencomo zero atingirá o resultado esperado nesse contexto, mas um comando como o ,,que está configurado como noremap ,, ggnão funcionará mais.

Portanto, é possível definir o tempo limite específico para um comando ou em determinado contexto, como no modo de seleção visual, com uma seleção ativa?

Talvez ter timeoutlenvoltado para zero possa tornar noremap ,, gginúteis coisas , portanto, apenas remover esse mapeamento pode ser suficiente para alcançar o resultado esperado.


Que tal configurá-lo para um valor razoável, digamos 500? Para os modos, AFAICT só autocmd eventos apenas para eventos relacionados ao modo de inserção, por isso pode não ser possível (a menos que você use CursorMovede monitore as alterações nos modos, mas isso é propenso a erros e sobrecarga demais).
Muru

11
Eu nunca usei outro layout de teclado, mas desde que eu já vi isso antes: O que você quer dizer com remapear enormemente? Neste artigo sobre Dvorak ( vim.wikia.com/wiki/Using_Vim_with_the_Dvorak_keyboard_layout ), entendi que ele deve funcionar muito bem com o comando langmap (exceto comandos multibutton como <cv>). Desculpe se é isso que você já fez. Como eu disse, nunca precisei, mas espero que possa ajudá-lo.
Doktor Oswaldo

Quero dizer esse mapeamento .
psychoslave

Respostas:


3

Parece que você tem algo como

noremap i d
noremap ix ... other mappings starting with i

E você está perguntando que io tempo limite é 0.

Nesse caso, você nunca seria capaz de digitar nenhum dos ixmapeamentos. Por que não removê-los e resolver o problema dessa maneira?

Se for apenas para o modo visual, evite definir os mapeamentos que começam com iesse modo.

Você pode remover os mapeamentos mencionados nos comentários com

xunmap iM
xunmap im

Na verdade, o problema diz respeito ao modo de seleção visual, desculpe o erro e obrigado por sugestões.
psychoslave

@psychoslave, você pode fazer :map ipara ver quais mapeamentos são definidos para quais modos.
Laktak 03/03/19

x iM *@:<C-U>call <SNR>30_wrap_i('[[','][')<CR> o iM *@:<C-U>call <SNR>30_wrap_i('[[','][')<CR> x im *@:<C-U>call <SNR>30_wrap_i('[m',']M')<CR> o im *@:<C-U>call <SNR>30_wrap_i('[m',']M')<CR> i * d
psychoslave

11
Difícil de ler dessa maneira, você deve atualizar sua pergunta. xsignifica modo visual - para que você deve remover os iMe immapeamentos.
Laktak #
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.