Esto es principalmente una nota divertida sobre bash
y readline
, pero si configura su EDITOR
variable de entorno en vim
, presionar Ctrl+ x+ eabrirá la línea actual vim
. Además, si escribe Meta(Alt/Opt/Esc)+ Ctrl+ e, bash realizará una expansión en el lugar en la línea de comando actual, es decir:
$ echo $EDITOR # Assuming EDITOR was set
con Meta(Alt/Opt/Esc)+ Ctrl+ ese convertiría
$ echo vim # Assuming EDITOR was set
con Ctrl+ x+ ese convertiría
1 echo vim # Assuming EDITOR was set
~
~
/tmp/sometmpbufferfile
Tenga en cuenta que al salir de vim, el contenido del búfer vim se ejecuta en la línea de comando.
Estas características se vuelven muy útiles para mí cuando quiero hacer comandos de varias líneas en bash, como para bucles o programas que requieren declaraciones aquí, y proporciona una forma interesante de guardar un poco del historial de la línea de comandos para archivarlo para su uso posterior.
Entonces, para responder la pregunta original, también puedes escribir,
$ This is an example
y luego presione Ctrl+ x+ epara cargarlo vim
. También podrías tener,
$ $(cat /etc/hosts)
y haga Meta(Alt/Opt/Esc)+ Ctrl+ eluego Ctrl+ x+ e, lo que colocaría todos los archivos hosts en una línea y lo cargaría vim
(probablemente no sea el mejor uso de estas características; sin embargo, la utilidad de estos métodos se puede extrapolar de los pocos ejemplos discutidos aquí).
Tenga en cuenta que supongo que su readline
está configurado en emacs
modo. Si readline
está configurado en vim
modo, puede descubrir fácilmente los enlaces relevantes mediante el comando:
bind -p
y buscando edit-and-execute-command
o shell-expand-line
, que se asociaron respectivamente con los enlaces Ctrl+ x+ ey Meta(Alt/Opt/Esc)+ Ctrl+ e.
:help stdin
... Es sorprendente lo rápido que uno puede encontrar las respuestas haciendo su pregunta sobre la documentación incorporada.