Questa è principalmente una nota divertente su bash
e readline
, ma se imposti la EDITOR
variabile di ambiente su vim
, premendo Ctrl+ x+ esi aprirà la riga corrente in vim
. Inoltre, se si digita Meta(Alt/Opt/Esc)+ Ctrl+ e, bash eseguirà un'espansione sul posto sulla riga di comando corrente, ovvero:
$ echo $EDITOR # Assuming EDITOR was set
con Meta(Alt/Opt/Esc)+ Ctrl+ ediventerebbe
$ echo vim # Assuming EDITOR was set
con Ctrl+ x+ ediventerebbe
1 echo vim # Assuming EDITOR was set
~
~
/tmp/sometmpbufferfile
Si noti che dopo aver chiuso vim, i contenuti del buffer vim vengono eseguiti sulla riga di comando.
Queste funzioni diventano molto utili per me quando voglio fare comandi multilinea in bash come loop o programmi che richiedono istruzioni qui, e fornisce un modo interessante per salvare un po 'di cronologia della riga di comando su file per un uso successivo.
Quindi, per rispondere alla domanda originale, puoi anche scrivere,
$ This is an example
e quindi premi Ctrl+ x+ eper caricarlo vim
. Inoltre potresti avere,
$ $(cat /etc/hosts)
e fai Meta(Alt/Opt/Esc)+ Ctrl+ epoi Ctrl+ x+ e, che metterebbe tutto il file hosts su una riga e lo caricherebbe vim
(probabilmente non è il miglior uso di queste funzionalità - tuttavia, l'utilità di questi metodi può essere estrapolata dai pochi esempi discussi Qui).
Nota che presumo che il tuo readline
sia impostato in emacs
modalità. Se readline
è impostata la vim
modalità, è possibile scoprire facilmente i collegamenti pertinenti utilizzando il comando:
bind -p
e alla ricerca di edit-and-execute-command
o shell-expand-line
, che erano rispettivamente associati alle associazioni Ctrl+ x+ ee Meta(Alt/Opt/Esc)+ Ctrl+ e.
:help stdin
... È incredibile quanto velocemente si possano trovare le risposte ponendo la loro domanda sulla documentazione integrata.