Esta é apenas uma observação divertida sobre bash
e readline
, mas se você definir sua EDITOR
variável de ambiente como vim
, pressionar Ctrl+ x+ eabrirá a linha atual vim
. Além disso, se você digitar Meta(Alt/Opt/Esc)+ Ctrl+ e, o bash executará uma expansão no local na linha de comando atual, ou seja:
$ echo $EDITOR # Assuming EDITOR was set
com Meta(Alt/Opt/Esc)+ Ctrl+ ese tornaria
$ echo vim # Assuming EDITOR was set
com Ctrl+ x+ ese tornaria
1 echo vim # Assuming EDITOR was set
~
~
/tmp/sometmpbufferfile
Observe que, ao sair do vim, o conteúdo do buffer do vim é executado na linha de comando.
Esses recursos se tornam muito úteis para mim quando eu quero executar comandos de várias linhas no bash, como loops ou programas que exigem instruções aqui, e fornece uma maneira interessante de salvar um pouco do histórico da linha de comando em arquivo para uso posterior.
Então, para responder à pergunta original, você também pode escrever,
$ This is an example
e pressione Ctrl+ x+ epara carregá-lo vim
. Além disso, você poderia ter,
$ $(cat /etc/hosts)
e faça Meta(Alt/Opt/Esc)+ Ctrl+ eentão Ctrl+ x+ e, que colocaria todo o arquivo hosts em uma linha e o carregaria vim
(provavelmente não é o melhor uso desses recursos - no entanto, a utilidade desses métodos pode ser extrapolada a partir dos poucos exemplos discutidos aqui).
Observe que eu assumo que você readline
está definido para o emacs
modo. Se você readline
estiver definido como vim
modo, poderá descobrir facilmente as ligações relevantes usando o comando:
bind -p
e procurando por edit-and-execute-command
ou shell-expand-line
, que foram respectivamente associados às ligações Ctrl+ x+ ee Meta(Alt/Opt/Esc)+ Ctrl+ e.
:help stdin
... É incrível a rapidez com que as respostas são encontradas, fazendo a pergunta da documentação incorporada.