Je me retrouve souvent dans ce scénario. Je suis en train de taper une commande et je dois vérifier autre chose avant de la terminer.
Existe-t-il un moyen d'ouvrir un sous-shell d'une sorte avec mon entrée actuelle jusqu'à présent mémorisée, puis lorsque je quitte ce sous-shell, je suis de retour à l'endroit où j'étais?
$ mylongcommand -n -e <SOME KEY COMBINATION WHICH OPENS A SUBSHELL>
$ date
...
$ exit
$ mylongcommand -n -e <BACK TO WHERE I WAS>
j'utilise zsh
command-line
zsh
Panayiotis
la source
la source
screen
outmux
pour obtenir plusieurs terminaux virtuels sur la console.Réponses:
Il y a la combinaison de touches EscQqui enregistre le tampon de commande et permet d'entrer une nouvelle commande. Après avoir exécuté la commande, le tampon contient ce que vous avez tapé auparavant. Si vous devez exécuter une autre commande avant de terminer, vous pouvez taper à EscQnouveau.
(Je n'ai pas encore essayé d'ouvrir un sous-shell après avoir appuyé sur EscQ.)
Voir http://zsh.sourceforge.net/Intro/intro_10.html et recherchez "esc-q"
la source
J'utilise généralement Ctrl+ Uqui efface la ligne actuelle et l'enregistre dans un tampon. De là, je fais tout ce dont j'avais besoin avant le
mylongcommand
. Ensuite, lorsque je suis prêt, j'utilise Ctrl+ Ypour coller àmylongcommand
nouveau dans mon invite.Rappelez-vous une commande à moitié tapée pendant que je vérifie quelque chose
la source
Ma solution est résolument low-tech et maladroite, mais repose sur des séquences de touches que vous connaissez probablement déjà: Hit Ctrl+ A, alors #, alors ENTER.
Cela a pour effet d'insérer un
#
au début de la ligne, ce qui en fait un commentaire, puis de l'exécuter, le poussant ainsi dans l'historique des commandes. Vous pouvez alors entrer votre commande auxiliaire, puis faire défiler l'historique de la commande jusqu'à la commande commentée, la supprimer#
et terminer la commande au besoin.la source
Je tape Ctrl+ Zpour «suspendre» la commande que je tape et saisis une autre commande. Après avoir exécuté cette commande (ou l'avoir abandonnée avec Ctrl+ C), la commande suspendue revient pour l'édition (même en se souvenant de la position du curseur). Pour plus de commodité, si la ligne de commande est vide lorsque je tape Ctrl+ Z, la touche invoque la fonction
bg
intégrée à la place (donc un double Ctrl+ Zenvoie une commande en cours d'exécution directement en arrière-plan).(Précédemment publié sur Se souvenir d'une commande à moitié tapée pendant que je vérifie quelque chose qui a principalement des solutions pour bash, où vous ne pouvez rien faire de plus pratique. Il s'agit d'une version légèrement plus sophistiquée de la liaison intégrée de
M-q
topush-line
.)Cela n'exécute pas de sous-shell: la commande que vous tapez après avoir «suspendu» la précédente s'exécute dans le même shell. Cela vous permet de faire des choses comme changer le répertoire courant si vous vous rendez compte après avoir tapé une commande que vous vouliez l'exécuter dans un autre répertoire. Si vous souhaitez exécuter une nouvelle instance de shell, vous pouvez exécuter à
zsh
partir d'une liaison de clé, mais je ne pense pas que ce soit particulièrement utile.la source