Como posso usar os atalhos do Readline na linha de comando do vim?

15

Ao editar um comando do Vim, gostaria de usar os mesmos atalhos do Bash e de todos os outros REPL: M-bpara retornar uma palavra, M-Backspaceexcluir uma palavra anterior, M-uconverter a palavra para maiúscula e C-kcortar até o final de a linha etc. Consegui configurar alguns dos comandos usando :cmap, mas não todos.

Existe um plugin ou configuração que fornece isso?

Eu sei cedit, mas acho complicado quando tudo o que preciso é inserir um comando rápido.

Mihai
fonte
Waitaminute, você está dizendo que usa o Bash no modo Emacs, mesmo usando o Vim como seu editor?
Kyle Strand
3
@KyleStrand Ainda não vi alguém que usou o Bash no modo vi. Parece que a maioria dos benefícios dos editores modais desaparece quando você está limitado a apenas uma linha.
Mihai
11
Interessante. Eu só uso Bash no modo Vi, embora pareça que o modo Emacs suporta algumas coisas que o modo Vi não. Por acaso conheço as combinações de teclas do Vi, permanecendo quase completamente ignorantes das ligações do Emacs, e nunca pensei que fosse uma questão urgente o suficiente para aprender os padrões.
Kyle Strand

Respostas:

11

Existe um plugin ou configuração que fornece isso?

Sim, plug - in rsi.vim :

Recursos

  • Os mapeamentos da linha de leitura são fornecidos no modo de inserção e no modo de linha de comando. O modo normal é deliberadamente omitido.
  • As ligações de teclas importantes do Vim (como a conclusão Cn e Cp do modo de inserção) não são substituídas.
  • As ligações de meta-teclas são fornecidas de uma maneira que funcione no terminal sem os perigos de refazer o escape.
  • Cd, Ce e Cf são mapeados de forma que eles executem o comportamento Readline no meio da linha e o comportamento Vim no final. (Pense nisso.)
mMontu
fonte
1

Existe um plugin ou configuração que fornece isso?

Também existe o readline.vim .

É um plug-in mais recente, focado exclusivamente na linha de comando. Ele também implementa um subconjunto maior dos atalhos do Readline e tem o objetivo de implementar cada atalho exatamente como no Readline.

O que torna esse plug-in diferente de plug-ins semelhantes é que ele implementa um subconjunto maior dos mapeamentos Readline e executa melhor o trabalho de imitar o comportamento do Readline para cada comando.

Os comandos de movimento e exclusão de palavras têm um comportamento diferente entre o Vim e o Readline. A maior diferença é que, na Readline, a pontuação é sempre ignorada ao procurar um limite de palavras. Outra diferença é que _ (sublinhado) é tratado como um delimitador de palavras. Este plug-in implementa o comportamento da linha de leitura para comandos de movimentação e exclusão de palavras.

wefwefa3
fonte
11
Estou surpreso que haja alguém procurando esse tipo de coisa. É tão fácil usar o modo vim do readline que eu acho que todo usuário regular do vim faria isso. (Eu não acho os comandos extras no modo emacs tão atraentes.) Mas talvez o "como" não seja tão conhecido (... e talvez eu tenha sorte de ter visto o primeiro bashrc / copiado ... muitos mais anos atrás do que eu gostaria de admitir ... tinha set -o vim:) #
B Layer