OVH Cloud OVH Cloud

prompt pour copiers-collers a la hate

10 réponses
Avatar
Daniel Déchelotte
Bonjour,

J'aimerais avoir un prompt (PS1) qui me permettent de reexecuter une
commande precedente en selectionnant et en collant la ligne entiere,
prompt + commande. Exemple qui ne marche pas :

15:01:57 /usr/src/WM/debian $ ls
[... le contenu du repertoire ...]

Si je triple clique sur la ligne du "ls" et que je colle le resultat,
j'obtiens bien sur : "bash: 15:01:57: command not found".

Y aurait-il une facon sioux de faire ?

Pendant l'ecriture de ce message, une solution consistant a mettre un ":
" devant le prompt et un " && " apres a l'air de fonctionner, a defaut
d'etre tres belle. Auriez-vous une astuce sous la main ?

--
Daniel Déchelotte
http://yo.dan.free.fr/

10 réponses

Avatar
mlz
Le Wed, 12 Oct 2005 15:10:49 +0200, Daniel Déchelotte a écrit :

Bonjour,

J'aimerais avoir un prompt (PS1) qui me permettent de reexecuter une
commande precedente en selectionnant et en collant la ligne entiere,
prompt + commande. Exemple qui ne marche pas :

15:01:57 /usr/src/WM/debian $ ls
[... le contenu du repertoire ...]

Si je triple clique sur la ligne du "ls" et que je colle le resultat,
j'obtiens bien sur : "bash: 15:01:57: command not found".

Y aurait-il une facon sioux de faire ?

Pendant l'ecriture de ce message, une solution consistant a mettre un ": "
devant le prompt et un " && " apres a l'air de fonctionner, a defaut
d'etre tres belle. Auriez-vous une astuce sous la main ?


soit mettre le prompt vide, soit sur un shell comme csh ou bash, "!!"
pour la derniere ligne , ou "!-3" par exemple pour 3 lignes au dessus
reexecute la ligne.

Avatar
Pascal Bourguignon
Daniel Déchelotte writes:

Bonjour,

J'aimerais avoir un prompt (PS1) qui me permettent de reexecuter une
commande precedente en selectionnant et en collant la ligne entiere,
prompt + commande. Exemple qui ne marche pas :

15:01:57 /usr/src/WM/debian $ ls
[... le contenu du repertoire ...]

Si je triple clique sur la ligne du "ls" et que je colle le resultat,
j'obtiens bien sur : "bash: 15:01:57: command not found".

Y aurait-il une facon sioux de faire ?

Pendant l'ecriture de ce message, une solution consistant a mettre un ":
" devant le prompt et un " && " apres a l'air de fonctionner, a defaut
d'etre tres belle. Auriez-vous une astuce sous la main ?


Ajouter un n à la fin. De toutes façons, quand on a des invites à
rallonge, ça vaut mieux.

PS1="`period-cookie`[ W]$n"

--
__Pascal Bourguignon__ http://www.informatimago.com/
The mighty hunter
Returns with gifts of plump birds,
Your foot just squashed one.

Avatar
Stephane Chazelas
2005-10-12, 15:10(+02), Daniel Déchelotte:
Bonjour,

J'aimerais avoir un prompt (PS1) qui me permettent de reexecuter une
commande precedente en selectionnant et en collant la ligne entiere,
prompt + commande. Exemple qui ne marche pas :

15:01:57 /usr/src/WM/debian $ ls
[... le contenu du repertoire ...]

Si je triple clique sur la ligne du "ls" et que je colle le resultat,
j'obtiens bien sur : "bash: 15:01:57: command not found".

Y aurait-il une facon sioux de faire ?
[...]


Tu as:

: 15:01:57 /usr/src/WM/debian; ls

(attention toutefois si le repertoire courant contient des $ ou
des ` ou se termine par un ).

Sinon, tu peux faire:

15:01:57 /usr/src/WM/debian §

Et changer la facon dont xterm fait la selection sur un
triple-click (faire un word-selection ou § est dans une
character class et tous les autres characters dans une autre).

--
Stéphane

Avatar
Thomas Baruchel
Si je triple clique sur la ligne du "ls" et que je colle le resultat,
j'obtiens bien sur : "bash: 15:01:57: command not found".


Sans ironie aucune ; n'es-tu pas sûr que presser trois ou quatre fois
la flèche vers le haut n'est pas plus rapide (que de positionner la souris et
de cliquer trois fois), plus complet (pour les lignes qui ne sont déjà plus
visibles), plus général (si tu travailles en console), etc. ?

Plus propre (quelle horreur que ces prompts "truqués") ?

Mais enfin, je suppose que cela ne me regarde pas ;-)

--
Thomas Baruchel
write to baruchel at the host called bluebottle dot com
écrire à baruchel chez l'hôte nommé bluebottle point com
http://baruchel.thomas.free.fr/

Avatar
lhabert
Thomas Baruchel :

Sans ironie aucune ; n'es-tu pas sûr que presser trois ou quatre fois
la flèche vers le haut


Ou taper ^R puis quelques caractères de la ligne en question (comme une
recherche incrémentale dans emacs, quoi). Enfin ça marche au moins avec zsh,
je ne sais pas pour les autres shells.

Mais ça ne marche pas si l'on veux copier coller entre deux shells
différents.

Avatar
lhabert
Daniel Déchelotte :

Pendant l'ecriture de ce message, une solution consistant a mettre un ":
" devant le prompt et un " && " apres a l'air de fonctionner, a defaut
d'etre tres belle. Auriez-vous une astuce sous la main ?


Toutes ces astuces seront prises en défaut le jour où tu auras un caractère
spécial dans le nom du répertoire courant.

--
Luc, parano vs les caractères à la con.

Avatar
Laurent Wacrenier
Daniel Déchelotte écrit:
J'aimerais avoir un prompt (PS1) qui me permettent de reexecuter une
commande precedente en selectionnant et en collant la ligne entiere,
prompt + commande. Exemple qui ne marche pas :

15:01:57 /usr/src/WM/debian $ ls
[... le contenu du repertoire ...]

Si je triple clique sur la ligne du "ls" et que je colle le resultat,
j'obtiens bien sur : "bash: 15:01:57: command not found".

Y aurait-il une facon sioux de faire ?


Sur XTerm, il y a la resource "cutToBeginningOfLine".
Une fois mise, il suffit de triple cliquer sur le premier mot.

Avatar
Pascal Bourguignon
(Luc Habert) writes:

Daniel Déchelotte :

Pendant l'ecriture de ce message, une solution consistant a mettre un ":
" devant le prompt et un " && " apres a l'air de fonctionner, a defaut
d'etre tres belle. Auriez-vous une astuce sous la main ?


Toutes ces astuces seront prises en défaut le jour où tu auras un caractère
spécial dans le nom du répertoire courant.


Non, pas la mienne.

--
__Pascal Bourguignon__ http://www.informatimago.com/


Avatar
lhabert
Pascal Bourguignon :

Non, pas la mienne.


Oui, je voulais dire « les astuces du style de celles que tu décrits dans le
paragraphe précédent ».

Avatar
Daniel Déchelotte
Nous avons un gagnant ! (enfin, a mon gout)


Sur XTerm, il y a la resource "cutToBeginningOfLine".
Une fois mise, il suffit de triple cliquer sur le premier mot.


En plus, ca fonctionne aussi avec aterm (et peut-etre d'autres...).

Petits commentaires sur les autres reponses :

- il y a effectivement des fois ou je ne veux manipuler que la souris
(avec le "scroll on tty output" desactive, je fais defiler le terminal,
je copie une commande, je la colle, j'en copie une autre, etc). J'utilise
quotidiennement C^r et C^p, mais parfois ce n'est pas le plus pratique.

- merci pour l'idee du n a la fin du prompt, qui a failli remporter mon
adhesion

- et non, je n'ai pas de repertoires qui s'appellent
) ; n;rm -rf $HOME
et autres amusants chausse-trappes. C'est deja tenter le diable que
d'utiliser des espaces dans les noms de fichiers...

Merci pour vos reponses.

--
Daniel Déchelotte
http://yo.dan.free.fr/