Scorciatoia da tastiera per memorizzare i comandi digitati e pulire la linea


12

Conosci la situazione: stai scrivendo a metà di un comando lungo (ad esempio un messaggio di commit) e ti rendi conto che hai dimenticato di eseguire alcuni dei prerequisiti che non è possibile aggiungere &&. Normalmente quando ciò accade a me, seleziono ciò che ho digitato con il mouse, lo copio negli appunti, premo Ctrl-U per cancellare la linea, eseguo il mio comando di prerequisito e incolla dagli appunti. Ma forse c'è un modo migliore, preferibilmente senza bisogno di usare il mouse? Sto cercando soluzioni per bash e / o zsh.

Risposte:


20

Dopo aver usato CTRL-U puoi usare CTRL-Y per incollare ciò che hai cancellato. Funziona anche dopo aver cancellato una o più parole con CTRL-W.

Nota in questo modo che non hai davvero bisogno di copiare nulla negli appunti o selezionarlo con il mouse - CTRL-U in realtà strappa la linea in un blocco appunti separato, per così dire.


5

Aggiungi un '#' all'inizio della riga corrente. Premi invio per aggiungere il commento alla tua cronologia. Eseguire il comando prerequisito. Vai al comando precedente ed elimina il #.


5

Questo è stato recentemente chiesto e discusso sul sito Unix e Linux di SE. La mia risposta ha spiegato che se usi zsh come shell, puoi usare la funzione push-line per riporre il tuo comando in corso, eseguire qualcos'altro, quindi il tuo primo comando tornerà e puoi finirlo. In .zshrc:

bindkey '^L' push-line

Quindi usa Ctrl+ Lper sospendere il comando corrente e tornare ad esso dopo aver eseguito qualcos'altro.

Sono state fornite molte altre risposte, incluse le impostazioni su come fare qualcosa di simile in bash e alcune versioni personalizzate di questo built-in in zsh.


0

Puoi fare Shift-Alt-3per commentare la riga corrente e passare a quella successiva. Poi si preme up, Ctrl-e, Dele tadam!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.