8 votes

Mac Terminal ou iTerm : Copier la commande en cours mais exclure l'invite ?

J'utilise Terminal ou iTerm (iTerm2). Disons que j'ai tapé une commande mais que je n'ai pas encore appuyé sur Entrée. Ou peut-être ai-je utilisé la flèche vers le haut pour naviguer dans l'historique de mes commandes. Comment copier la commande en cours dans le presse-papiers de macOS ? Mais je ne veux pas non plus que l'invite soit incluse. Existe-t-il un raccourci clavier pour faire cela ?

Par exemple, disons que le terminal affiche ceci :

myhostname:Documents kevuser$ mkdir cool_directory_name

Quel est le raccourci clavier pour copier mkdir cool_directory_name dans le presse-papiers de Mac OS ? Puis-je ajouter cette fonctionnalité d'une manière ou d'une autre ? J'ai l'impression qu'à chaque fois que j'essaie de copier la ligne entière, cela inclut la partie de l'invite du terminal, myhostname:Documents kevuser$ que je ne souhaite pas voir copier et coller.

12voto

Douglas Points 10417

Il suffit d'utiliser la commande

 echo !! | pbcopy

Le double point d'exclamation correspond à la "dernière commande". Elle est ensuite transmise au pbcopy qui le place dans le presse-papiers.

Il n'y a pas de raccourci, mais vous pouvez créer un alias dans votre fichier ~/.bash_profile ou dans votre fichier ~/.zprofile, en fonction de votre shell, qui exécutera la commande avec un nom facile à retenir

alias cplastcmd=‘echo !! | pbcopy’

Si vous souhaitez copier un texte que vous avez saisi mais non exécuté, vous pouvez utiliser la méthode suivante

  • ^ ControlU : Coupe la ligne avant le curseur et la place dans le presse-papiers.
  • ^ ControlK : Coupe la ligne après le curseur et la place dans le presse-papiers. A utiliser avec ^ ControlA pour passer au début de la ligne.
  • ^ ControlY : Coller la dernière commande du presse-papiers

Note : Les raccourcis clavier standard pour le copier/coller sont les suivants Command ou ^ Control C y V ne fonctionnent pas dans Terminal.

Enfin, si vous disposez d'une souris dotée d'un troisième bouton central, vous pouvez simplement sélectionner le texte et appuyer sur le bouton central pour copier et coller le texte sélectionné.

0voto

MrTemple Points 288

A part la réponse d'Allan qui utilise pbcopy pour capturer la dernière commande exécutée (ce qui ne fonctionne pas pour les commandes non exécutées ou celles exécutées il y a un certain temps), la seule façon de copier la ligne courante dans Terminal est de la surligner et de la copier.

Pour faciliter la tâche, il est possible d'ajouter des espaces blancs à l'invite. Cela ne vous aidera pas à saisir UNIQUEMENT la commande que vous voulez, car vous risquez d'attraper des espaces blancs supplémentaires (ce qui n'a souvent pas d'importance), mais cela peut vous permettre d'éviter de saisir du texte supplémentaire à l'invite.

Votre invite peut être définie à différents endroits en fonction de la configuration et de l'interpréteur de commandes que vous utilisez (~/.bashrc, ~/.zshrc, etc). Quelque part, il apparaîtra comme suit :

PS1="[\u@\h \W]\\$ "

PS1= est en train de définir l'invite. Vous pouvez modifier l'espace de fin pour ajouter des espaces supplémentaires.

Désolé, il n'y a pas de meilleure réponse.

Sinon, il m'arrive de double-cliquer sur le premier mot/commande de la ligne, puis de shift-cliquer sur la fin de la ligne, ce qui garantit au moins que vous n'engloutirez pas une partie de l'invite.

0voto

virsir Points 2981

Dans iTerm2, si vous avez activé Intégration de la coquille :

  1. Presse Home pour aller au début de la ligne
  2. Type echo y Enter pour que la ligne en cours soit imprimée en sortie
  3. Presse Cmd + Shift + A pour sélectionner la dernière sortie de commande
  4. Cmd + C pour copier dans le presse-papiers.

-1voto

Natsfan Points 12853

Sur mon iMac fonctionnant sous High Sierra, je peux utiliser le curseur de la souris pour sélectionner n'importe quelle partie d'une ligne et la copier. Lorsqu'une fenêtre de terminal est ouverte, si je déplace le curseur de ma souris dans la fenêtre de terminal et que je clique, le curseur de la souris se transforme en curseur en croix. Je peux alors le déplacer dans la fenêtre du terminal et sélectionner une partie de la ligne de mon choix.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X