web-dev-qa-db-fra.com

Commentaires en ligne de commande Zsh

J'ai récemment passé de Bash à Zsh sur Ubuntu et j'en suis très content. Cependant, il y a quelque chose qui me manque vraiment et je n'ai pas trouvé comment réaliser la même chose.

Dans Bash, chaque fois que je tapais une longue commande et remarquais que je devais exécuter autre chose auparavant, je devais simplement le commenter comme suit:

me@home> #mysuperlongcommand with some arguments
me@home> thecommandIhavetorunfirst #and then: then up up
me@home> #mysuperlongcommand with some arguments #I just need to uncomment it!

Cependant, cette situation assez récurrente n'est pas aussi facile à résoudre qu'avec zsh, étant donné #mysuperlongcommand sera exécuté comme tel (et aura pour résultat: zsh: command not found: #mysuperlongcommand.

100
Rolf

Ayant juste commencé à essayer zsh, j'ai également rencontré ce problème. Tu peux faire setopt interactivecomments pour activer les commentaires de style bash.

148
Lajnold

J'utilise

bindkey "^Q" Push-input

Depuis le manuel de zsh:

Poussez l'intégralité de la construction multiligne actuelle sur la pile de tampons et revenez à l'invite de niveau supérieur (PS1). Si la construction de l'analyseur en cours n'est qu'une seule ligne, c'est exactement comme la ligne de poussée. La prochaine fois que l'éditeur démarre ou est sauté avec get-line, la construction sera sautée du haut de la pile de tampons et chargée dans le tampon d'édition.

Cela ressemble donc à ceci:

> long command
Ctrl+Q => long command disappears to the stack
> forgotten command
long command reappears from stack
> long command

De plus, si vous définissez le INTERACTIVE_COMMENTS option (setopt INTERACTIVE_COMMENTS), vous pourrez utiliser des commentaires dans des shells interactifs comme vous en avez l'habitude.

38
Michał Politowski

Je me retrouve aussi souvent à faire ça. Ce que je fais est de couper la commande longue, d'exécuter la commande qui doit être exécutée en premier, puis de la coller à nouveau. C'est simple: CTRL + coupe la commande actuelle dans un tampon, - CTRL + Y le colle. Fonctionne en zsh et bash.

18