9 votes

Y a-t-il un moyen de revenir à une partie antérieure d'une commande de ligne de commande dans le Terminal Mac?

Je me retrouve souvent à taper de longues commandes dans l'invite de commande bash - des choses avec de nombreux arguments, des adresses web, des routes, etc. De temps en temps, je réalise que j'ai oublié, par exemple, de mettre mon "bundle exec" au début de la commande, ou que j'ai mal orthographié quelque chose, ou que j'ai oublié des guillemets. Ou quelque chose d'aussi simple que de mettre "cd" au lieu de "vim".

Ainsi commence le processus fastidieux de maintenir la touche flèche gauche jusqu'à ce que je revienne au début de la commande.

Y a-t-il un moyen de revenir au début de la ligne ?

2 votes

Vous voudrez peut-être vous débarrasser de l'application de terminal par défaut et télécharger iTerm.

0 votes

Pourquoi? Je viens de vérifier, et il semble se comporter à peu près de la même manière. (La touche d'accueil fonctionne maintenant, mais puisque j'ai les autres touches, cela n'a pas vraiment d'importance). Qu'est-ce qu'il offre qui justifierait de refaire tous mes paramètres, configurations et tâches, etc.?

0 votes

Cela semble être quelque chose que vous pouvez configurer avec .inputrc

12voto

Abbas Points 3737

En plus de ^A et ^E, vous pouvez faire

  • Esc-b pour sauter en arrière d'un mot
  • Esc-f pour sauter en avant d'un mot
  • Ctrl-b pour reculer d'un caractère
  • Ctrl-f pour avancer d'un caractère

Consultez le manuel de bash pour les commandes de déplacement.

0 votes

Une chose à noter -- ceci vient d'Emacs, et en ajoutant l'option emacs à vos shellopts vous pouvez en obtenir un peu plus.

6voto

mouviciel Points 3018

Vous pouvez utiliser des commandes Emacs, par exemple :

  • ctrl-A pour aller au début de la ligne de commande
  • ctrl-E pour aller à la fin de la ligne de commande

Ceci est bash, non spécifique à Mac.

3voto

Adam Crume Points 7444
set -o vi

Ensuite, Esc suivi de

^ début de ligne $ fin de ligne b un mot en arrière w un mot en avant

0 votes

Je suis un grand fan de Vim, donc le principe de votre réponse me convient parfaitement, mais l'édition modale en ligne de commande peut être un peu confuse pour l'OP, surtout sans mention de comment revenir à la saisie! Revenez en mode d'insertion en utilisant i (insert) pour taper avant le curseur ou a (append) pour taper après le curseur.

0 votes

J'utilise vi comme éditeur de texte principal depuis des décennies, mais je préfère toujours les raccourcis clavier emacs pour mon shell.

0 votes

En fait, l'OP utilise vim pour tout l'édition de texte, donc savoir que vous pouvez définir des standards vi est incroyablement utile. Merci beaucoup !

1voto

Richarda Points 71

Cela ne répond pas à votre question mais cela peut résoudre votre problème dans certains cas.

En bash, le jeton !! est substitué par votre commande précédente. Donc, si vous oubliez d'ajouter quelque chose au début d'une commande (comme sudo), vous pouvez faire quelque chose comme ceci

# ./super_commande_secrète --avec-args
=> ACCÈS REFUSÉ

# sudo !!
sudo ./super_commande_secrète --avec-args
=> ACCÈS ACCORDÉ

0voto

m0skit0 Points 1337

Je ne suis pas un utilisateur de Mac mais qu'en est-il de la touche Home ? Cela fonctionne très bien sur un terminal Linux.

1 votes

Non, cela fait défiler vers le haut de la fenêtre du terminal.

0 votes

Par défaut, Home et End font défiler la vue, ce qui est le comportement standard sur Mac. Par défaut, Shift-Home et Shift-End envoient respectivement "ESC [ H" et "ESC [ F". Tout cela est personnalisable dans Terminal > Préférences > Paramètres > [profil] > Clavier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X