Às vezes, ao digitar um comando no modo normal, você pode digitar um erro, por exemplo, se eu pretender digitar 10dk
, posso começar a digitar acidentalmente 19d
.
Como o comando ainda não foi concluído / confirmado, é possível excluir as chaves incorretas usando o backspace, como tal: em 19d<backspace><backspace>0dk
vez de ter que pressionar escape e tentar novamente o comando?
Pergunta secundária: Existe um termo Vim para a estrutura de dados que contém o comando atual antes de ser confirmado?
vimrc
normal-mode
command-history
HellaMad
fonte
fonte
Respostas:
Não há como fazer isso e é normal que não exista: os comandos do modo normal geralmente são bem curtos e podem ser cancelados Escse você mexer.
Uma solução possível seria usar o
:normal
comando Isso torna o processo mais longo, mas, por exemplo, se você digitar:normal 10j
na linha de comando, o Vim será executado10j
como se você o digitasse no modo normal. (Veja:h :normal
)Você também pode adicionar essas linhas ao seu
.vimrc
:Eles criam um mapeamento (aqui, F4mas usam o que você quiser) que chamará a função
NormalModeCommand()
.A função permite que você digite uma sequência na linha de comando e execute a sequência digitada como um comando no modo normal. Ao digitar a sequência na linha de comando, você pode corrigi-la como qualquer outro comando. Claro que não é o ideal, mas mais uma vez o Vim não foi feito para isso.
fonte