Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Editer plusieurs fichiers à la fois

8 réponses
Avatar
Vincent Bernat
Coucou !

Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.

Une idée ?
--
die_if_kernel("Kernel gets FloatingPenguinUnit disabled trap", regs);
2.2.16 /usr/src/linux/arch/sparc/kernel/traps.c

8 réponses

Avatar
Marc Boyer
On 2008-03-18, Vincent Bernat wrote:
Coucou !

Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.



Et pourquoi pas un bon vieux "cp" après avoir modifié un fichier ?

Une idée ?



Non.
Et puis je ne vois pas pourquoi quelqu'un aurait développé cela
alors qu'un cp en fin d'édition convient.
Mais j'ai peut-être raté une partie du problème.

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Avatar
Vincent Bernat
OoO En cette fin de matinée radieuse du mercredi 19 mars 2008, vers
11:21, Marc Boyer disait:

Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.



Et pourquoi pas un bon vieux "cp" après avoir modifié un fichier ?



Parce qu'ils ne sont pas forcément identiques. Je veux juste faire la
même modification sur les deux fichiers.
--
BOFH excuse #71:
The file system is full of it
Avatar
Marc Boyer
On 2008-03-19, Vincent Bernat wrote:
OoO En cette fin de matinée radieuse du mercredi 19 mars 2008, vers
11:21, Marc Boyer disait:

Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.





Et pourquoi pas un bon vieux "cp" après avoir modifié un fichier ?



Parce qu'ils ne sont pas forcément identiques. Je veux juste faire la
même modification sur les deux fichiers.



Dur.
Parce que je vois pas trop ce que l'éditeur va permettre de
visualiser. Il faudrait faire un 'diff' préalable, sur 'n' fichiers,
éditer les parties communes en faisant une sorte de "gris" sur le
reste...
Je pense que tu pourrais t'en sortir plutôt à coup de script
sed/awk/perl, quitte à faire le diff entre l'original et la
copie pour voir avant.

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Avatar
Vincent Bernat
OoO En cette matinée ensoleillée du jeudi 20 mars 2008, vers 09:51, Marc
Boyer disait:

Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.





Et pourquoi pas un bon vieux "cp" après avoir modifié un fichier ?



Parce qu'ils ne sont pas forcément identiques. Je veux juste faire la
même modification sur les deux fichiers.



Dur.
Parce que je vois pas trop ce que l'éditeur va permettre de
visualiser. Il faudrait faire un 'diff' préalable, sur 'n' fichiers,
éditer les parties communes en faisant une sorte de "gris" sur le
reste...



Justement, je ne lui demande rien de visualiser, juste d'exécuter une
même suite d'action sur plusieurs buffers. Je pourrais le faire en
différé en enregistrant une macro. Mais non seulement, elle s'arrêterait
en temps d'erreur, mais je veux le faire en même temps au cas où une
suite d'action n'a pas l'effet souhaité dans un des buffers.
--
BOFH excuse #184:
loop found in loop in redundant loopback
Avatar
Marc Boyer
On 2008-03-21, Vincent Bernat wrote:
OoO En cette matinée ensoleillée du jeudi 20 mars 2008, vers 09:51, Marc
Boyer disait:
Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.





Et pourquoi pas un bon vieux "cp" après avoir modifié un fichier ?



Parce qu'ils ne sont pas forcément identiques. Je veux juste faire la
même modification sur les deux fichiers.





Dur.
Parce que je vois pas trop ce que l'éditeur va permettre de
visualiser. Il faudrait faire un 'diff' préalable, sur 'n' fichiers,
éditer les parties communes en faisant une sorte de "gris" sur le
reste...



Justement, je ne lui demande rien de visualiser, juste d'exécuter une
même suite d'action sur plusieurs buffers.



J'avoue que je ne comprend toujours pas tout: d'une part, utiliser
emacs (éditeur) sans rien visualiser... Autant prendre sed, non ?

Je pourrais le faire en
différé en enregistrant une macro. Mais non seulement, elle s'arrêterait
en temps d'erreur, mais je veux le faire en même temps au cas où une
suite d'action n'a pas l'effet souhaité dans un des buffers.



Mais tu veux voir l'effet sur tous les fichiers en même temps ?

Enfin bon, pour revenir à la question initiale, je serai étonné
que quelque chose existe car, de ce que je comprends du problème,
c'est très spécifique, et emacs ne me semble pas le bon outil
pour faire ça (modulo que bien sûr, il peut le faire puisqu'il
peut tout faire...).

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Avatar
Vincent Belaïche
Bonjour,

Peut-être que ceci répond à ton besoin : tu fait `C-x (' pour commencer
une macro clavier (Keyboard macro) tu fais ton édition dans l'un des
fichiers, puis tu fais `C-x )' pour fermer la macro clavier. Après tu va
dans chacun des fichiers et tu lances la macro.

Tu pourrais automatiser cette dernière étape en développant une fonction
interactive en Elisp pour lancer la macro clavier dans chacun des
buffers ouvert dans le même mode que le buffer courant sauf dans le
buffer courant.

Mais à dire vrai je suis d'accord avec l'un des commentaires qu'on t'a
fait. Le mieux dans ta situation (et c'est ce que moi je ferais) et
d'écrire un petit script AWK (ou Elisp) qui va faire la modification.

A+,
Vincent.



Marc Boyer a écrit :
On 2008-03-21, Vincent Bernat wrote:
OoO En cette matinée ensoleillée du jeudi 20 mars 2008, vers 09:51, Marc
Boyer disait:
Je voudrais éditer plusieurs buffers à la fois. Il s'agit d'ouvrir des
fichiers similaires et de les éditer tous à la fois. Un peu comme ce
qu'on peut faire avec cssh (cluster ssh) : tout ce que je tape dans un
buffer est tapé à l'identique dans un autre.


Et pourquoi pas un bon vieux "cp" après avoir modifié un fichier ?


Parce qu'ils ne sont pas forcément identiques. Je veux juste faire la
même modification sur les deux fichiers.


Dur.
Parce que je vois pas trop ce que l'éditeur va permettre de
visualiser. Il faudrait faire un 'diff' préalable, sur 'n' fichiers,
éditer les parties communes en faisant une sorte de "gris" sur le
reste...


Justement, je ne lui demande rien de visualiser, juste d'exécuter une
même suite d'action sur plusieurs buffers.



J'avoue que je ne comprend toujours pas tout: d'une part, utiliser
emacs (éditeur) sans rien visualiser... Autant prendre sed, non ?

Je pourrais le faire en
différé en enregistrant une macro. Mais non seulement, elle s'arrêterait
en temps d'erreur, mais je veux le faire en même temps au cas où une
suite d'action n'a pas l'effet souhaité dans un des buffers.



Mais tu veux voir l'effet sur tous les fichiers en même temps ?

Enfin bon, pour revenir à la question initiale, je serai étonné
que quelque chose existe car, de ce que je comprends du problème,
c'est très spécifique, et emacs ne me semble pas le bon outil
pour faire ça (modulo que bien sûr, il peut le faire puisqu'il
peut tout faire...).

Marc Boyer
Avatar
Vincent Bernat
OoO En cette matinée pluvieuse du dimanche 13 avril 2008, vers 10:57,
Vincent Belaïche disait:

Peut-être que ceci répond à ton besoin : tu fait `C-x (' pour
commencer une macro clavier (Keyboard macro) tu fais ton édition dans
l'un des fichiers, puis tu fais `C-x )' pour fermer la macro
clavier. Après tu va dans chacun des fichiers et tu lances la macro.



Le problème, c'est qu'en cas d'erreur, l'enregistrement de la macro est
interrompu. Je ne peux pas non plus vérifier en temps réél que ce que je
fais a bien l'effet escompté sur les deux copies du fichier.

Mais à dire vrai je suis d'accord avec l'un des commentaires qu'on t'a
fait. Le mieux dans ta situation (et c'est ce que moi je ferais) et
d'écrire un petit script AWK (ou Elisp) qui va faire la modification.



Les manips en question prennent une dizaine de secondes et sont très
répétitives. Si je dois développer une petit script à chaque fois, au
lieu de mettre 20 secondes, je vais mettre 5 minutes. Pas très
productif. De plus, je ne sais pas si les modifications ont bien eu
l'effet escompté. Si je dois en plus faire un diff après coup, c'est
autant de temps perdu.
--
die_if_kernel("Penguin instruction from Penguin mode??!?!", regs);
2.2.16 /usr/src/linux/arch/sparc/kernel/traps.c
Avatar
Vincent Bernat
OoO En ce début d'après-midi ensoleillé du dimanche 13 avril 2008, vers
15:19, Vincent Belaïche disait:

Juste par curiosité, comment assures-tu que le texte que tu modifies
dans un fichier va s'insérer à l'endroit voulu dans les autres
fichiers. Il faut bien que tes fichiers ne soient pas totalement
différents.



Oui, ils ne sont pas totalement différents. Ils sont même quasiment
identiques, mais il peut y avoir de petites différences. Pour le moment,
j'utilise clusterssh. S'il y a une différence entre les deux fichiers,
je peux prendre la main sur un seul des terminaux pour faire certaines
actions visant à compenser les différences.

Ne serait-il pas possible non plus que tu mettes la partie commune à
tous ces fichiers dans un seul fichier commun, et que tu inclues ce
fichier commun dans ces fichiers via une commande propre au langage
dont que tu édites avec Emacs (par exemple si c'est du C avec une
directive `#include', si c'est du LaTeX avec `input' ou `include',
etc...).



Les fichiers ne sont pas sur la même machine.
--
Et puis, je mets pas de swap, comme ca, le premier qui fait le con, le
noyau l'abat ... (a la corse)
-+- NLS in GFA: le process glouton prend le maquis -+-