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 i
que 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 timeoutlen
como zero atingirá o resultado esperado nesse contexto, mas um comando como o ,,
que está configurado como noremap ,, gg
nã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 timeoutlen
voltado para zero possa tornar noremap ,, gg
inúteis coisas , portanto, apenas remover esse mapeamento pode ser suficiente para alcançar o resultado esperado.
fonte
CursorMoved
e monitore as alterações nos modos, mas isso é propenso a erros e sobrecarga demais).Respostas:
Parece que você tem algo como
E você está perguntando que
i
o tempo limite é 0.Nesse caso, você nunca seria capaz de digitar nenhum dos
ix
mapeamentos. 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
i
esse modo.Você pode remover os mapeamentos mencionados nos comentários com
fonte
:map i
para ver quais mapeamentos são definidos para quais modos.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
x
significa modo visual - para que você deve remover osiM
eim
mapeamentos.