Je voudrais configurer mon Bash de manière à ce que je puisse tirer du texte de la commande précédente stdout. L'exemple d'utilisation que je vais utiliser est la résolution de conflits lors d'un rebas git.Yanking du texte de la précédente stdout sur la ligne de commande
$ git status
# Not currently on any branch.
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: app/views/report/index.html.erb
#
$ vim app/views/report/index.html.erb
# .... edit, resolve conflicts ....
$ git add <Alt+.>
Le problème est que la meilleure façon de saisir le nom du fichier pour la 2ème commande (vim ...
) est de déplacer ma main sur la souris. Une option est screen
, mais cela a son propre ensemble de problèmes comme un shell au jour le jour. (Ce n'est pas le moins que j'utilise et que j'utilise Ctrl + A comme raccourci readline)
Où pourrais-je commencer à faire ce travail pour moi? Idéalement, je voudrais pouvoir tirer la ligne N th à partir de la sortie standard de la commande précédente, quelque part que je puisse la manipuler comme une commande.
Ouais, il devient évident que je devrai modifier mon environnement pour capturer stdout/stderr puis écrire quelque chose à tirer ces lignes vos suggestions semblent bonnes, mais je ne suis pas sûr. comment j'obtiendrais ceci d'une variable sur la ligne de commande de bash (c.-à-d. développez la variable en ligne, ou mieux faites tout cela à partir d'une touche de raccourci) – Shaun
@Shaun: Avez-vous vraiment besoin de l'agrandir? Tu ne peux pas juste référencer la variable comme dans mon exemple? Vous pouvez appuyer sur Ctrl-Alt-e pour développer la variable sur la ligne de commande si nécessaire (elle fera d'autres extensions en même temps). Recherchez "shell-expand-line" dans "man bash" pour plus d'informations. Malheureusement, les fonctions readline ne peuvent pas être appelées par programmation. –
C'est dommage - c'est plus d'effort que de simplement utiliser la souris pour le faire. J'espérais pouvoir le coder, mais on dirait que ce n'est pas vraiment une option sans modifier Bash. Merci d'avoir répondu. – Shaun