Aller à la dernière invite dans le terminal (ou tmux)

8

Dans un terminal, existe-t-il des raccourcis pour passer à une invite précédente / suivante? Faire défiler vers le haut et essayer de trouver le début d'un journal ralentit mon flux de travail.

J'utilise iTerm sur OSX, mais cela devrait être applicable à tous les terminaux Unix. Une solution dans Tmux serait également utile.

domi91c
la source
Si votre nom d'hôte est dans votre invite, vous pouvez inverser la recherche pour revenir en arrière de cette façon ...
jasonwryan
Pipe à less.
Kusalananda

Réponses:

4

Dans tmux v2.4 + ( commit pertinent ), vous pouvez définir une liaison pour passer aux dernières invites avec une fiabilité acceptable:

bind-key b copy-mode\;\
           send-keys -X start-of-line\;\
           send-keys -X search-backward " "

" "est un espace insécable et une modification correspondante est apportée pour que votre invite de shell le contienne ( $PS1ou $PROMPT_COMMANDdans bash).

Il peut nécessiter un soin particulier pour le définir dans l'invite du shell et la configuration tmux, car il pourrait être changé en espace normal pendant les opérations de copier-coller (voir la méthode avec vim dans les commentaires).

Alternativement, vous pouvez essayer votre caractère d'espace alternatif unicode préféré ou tout ce qui se produit rarement dans les sorties de commande et que vous êtes prêt à accepter de voir dans votre invite (🍌?).

Cela pourrait également être une combinaison de plusieurs caractères pour encore moins de faux positifs. Il est probablement préférable de choisir quelque chose à la toute fin de l'invite, pour une navigation plus facile.

Crédit :

lbonn
la source
1
Couper et coller ne ferait pas fonctionner le caractère d'espace insécable pour moi, mais j'ai pu le faire fonctionner avec Vim. En mode insertion, utilisez CTRL-k <space><space>pour insérer l'espace insécable. Ensuite, en mode normal, la gacommande imprime la valeur ASCII du caractère sous le curseur qui peut être utilisée pour confirmer que ce caractère est différent des autres espaces.
robenkleene
0

Si vous utilisez lesspour afficher le contenu du fichier journal, vous avez la possibilité de faire défiler d'avant en arrière à l'aide des touches Spaceet b(voir le lessmanuel). Vous pouvez également effectuer des recherches dans la sortie avec /(et ?pour la recherche en arrière).

Pour afficher la sortie d'un programme dans less, dirigez-la simplement vers celle-ci:

$ ./myprogram | less

Pour enregistrer en plus la sortie dans un fichier:

$ ./myprogram | tee myprogram.out | less

Si vous appuyez sur Fpendant la lecture d'un fichier en cours d'écriture, lessse comportera comme tail -f. Pour l'interrompre, appuyez sur Ctrl+ c.

Kusalananda
la source