cancelar completo

11

Normalmente, a conclusão do modo de inserção ( <C-n>) insere a palavra certa na primeira vez que pressiono <C-n>, mas nem sempre. Portanto, eu gostaria que o Vim inserisse a correspondência que considerasse melhor quando pressionasse <C-n>, mas ainda assim permitirei que eu cancele essa inserção depois, caso a correspondência correta não apareça ou esteja muito longe na lista.

É claro que eu poderia codificar esse comportamento, mas tenho a sensação de que deve haver uma chave padrão (combinação) para fazer isso. Alguém poderia me apontar na direção certa?

Pergunta do bônus: existe outra chave que eu possa usar para obter a correspondência mais longa (como era antes de eu acertar <C-n>)?

Para o que vale a pena, eu estou usando completeopt=menu

Octaviour
fonte
1
É o ctrl-uque você está procurando?
statox
Não, ctrl-u parece excluir a linha inteira. Estou procurando uma combinação que apenas remova o texto que foi inserido pressionando ctrl-n.
precisa
Meu primeiro pensamento foi "não funciona como a tecla de cancelamento usual aqui?", Então percebi que era o emacs. Apenas alguns dias de aprendizado, anos atrás, me corromperam, vou me banhar em um rio sagrado e me purificar!
sundar - Restabelece Monica

Respostas:

13

De :h complete_CTRL-E:

                                                        * complete_CTRL-E *
Quando a conclusão estiver ativa, você pode usar o CTRL-E para pará-lo e voltar ao
texto digitado originalmente. O CTRL-E não será inserido.

Além disso, se você digitar aentão ^Pe obter uma lista muito longa, poderá pressionar ^N para retornar ao seu texto original com o pop-up de conclusão ainda ativo. Você pode digitar caracteres extras para restringir a lista de conclusão.

Antony
fonte
Era exatamente isso que eu estava procurando. Eu não tinha percebido que ctrl-p também me levaria de volta à entrada original. Obrigado.
Oct
2
@ Octaviour, acho que ctrl-p geralmente é mais útil que ctrl-n, porque ele procura a correspondência mais próxima antes (em vez de depois) de onde você está. Então, se você acabou de escrever uma palavra, ctrl-p rapidamente mostrar-lhe a mesma palavra se você precisa repeti-lo (por exemplo, usando a mesma variável novamente no código)
Shahbaz
Sim, eu escrevi ^Ppor hábito exatamente por esse motivo.
Antony