Commentaires dans la ligne de commande Zsh

Je suis passé tout récemment de Bash à Zsh sur Ubuntu et j’en suis plutôt 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 que je remarquais que je devais exécuter autre chose auparavant, je devais simplement la 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 à traiter qu’avec zsh , étant donné que #mysuperlongcommand sera exécuté en tant que tel (et qu’il en résultera: zsh: command not found: #mysuperlongcommand .

Après avoir commencé à essayer zsh, j’ai également rencontré ce problème. Vous pouvez setopt interactivecomments pour activer les commentaires de style bash.

j’utilise

 bindkey "^Q" push-input 

A partir du manuel zsh:

Poussez l’intégralité de la structure multiligne actuelle sur la stack de tampons et retournez à l’invite de niveau supérieur (PS1). Si la construction actuelle de l’parsingur n’est qu’une ligne, c’est exactement comme une ligne de commande. La prochaine fois que l’éditeur démarre ou est affiché avec get-line, la construction sera affichée en haut de la stack de tampons et chargée dans le tampon d’édition.

Alors ça ressemble à ça:

 > 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 l’option INTERACTIVE_COMMENTS ( setopt INTERACTIVE_COMMENTS ), vous pourrez utiliser les commentaires dans les shells interactifs auxquels vous êtes habitué.

Je me trouve souvent faire ça aussi. Ce que je fais est de couper la longue commande, d’exécuter la commande qui doit aller en premier et de coller ensuite la longue commande. C’est facile: CTRL + U coupe la commande actuelle dans un tampon, CTRL + Y le colle. Fonctionne dans zsh et bash.