Le 29/07/2014 22:34, moi-meme a écrit : >> Et tu fais de même pour chacune des variables qui se retrouvent dans le >> fichier vim à éditer. À partir de là, quand tu lanceras dans vim : >> >> :w | !bash % >> >> les variables seront bien définies avec les valeurs qu'elles avaient >> juste avant la ligne « vim <le-fichier> ». >> > > Cette proposition m'intéresse. > Jean Jachues m'a envoyé un mail me disant d'utiliser vim dan la même > console et de le fermer à chaque fois. Ensuite j'exécute la boucle.
Ben oui, en gros on dit un peu tous la même chose : ouvrir vim normalement et le fermer normalement avec « :w ». > Je te mets le bout de script concernant la boucle. Je ne peux pas le > faire à partir de vim avec : ":w | !bash %" > > J'édite le fichier select/$film/action. "selection/$film/action" plutôt, d'après le code ci-dessous. > Mais dans la boucle je ne fais pas que l'exécuter : je réaffiche l'image Et bien mets également la partie du code qui affiche l'image dans le fichier que tu édites avec vim. Ce fichier est bien généré automatiquement par le script « global » de toute façon, non ? Autre possibilité : tu n'es pas obligé dans vim de lancer le fichier courant lui-même dans avec « : !bash % », tu peux aussi te créer un exécutable dans /usr/local/bin/ qui s'appellerait tester_image.sh (par exemple) et qui ferait un truc du genre ça : ----------------------------------------- #!/bin/bash # Du code... # Inclusion du fichier donné au argument # avec la commande « point ». . "$1" # Encore un peu de code... ----------------------------------------- De sorte que l'appel : tester_image.sh selection/film21/action revienne à exécuter le code ci-dessus où tu remplaces la ligne « . "$1" » par le contenu du fichier "selection/film21/action". Du coup, dans vim, tu pourrais faire un truc du genre : :w | tester_image.sh "%" ainsi dans, vim, tu pourrais te limiter uniquement à la partie que tu dois modifier manuellement (par tâtonnements). > Je te montre la boucle pour information (toujours du rustique) > > #choix de la photo > sortie=/tmp/action.jpg > entree=$image > #met l'image > feh --geometry 600x400+10+10 $image & > #visualise sortie > to_do=$(cat selection/$film/action) > eval "$to_do" > #visualise photo > eog $sortie & > > #feh --geometry 100x100+0+0 $image & > #traitement action > echo "traitements images par action" > #boucle de revisualisation > while [ ! $a ] ; do > #traite fichier selection > vim selection/$film/action > pkill eog > #traitement de l'image > to_do=$(cat selection/$film/action) > eval "$to_do" > #visualise photo > eog $sortie & > read a > echo $a > done > #arrete feh > kill -SIGTERM %1 #-- -$(jobs -p) > pkill eog En voyant ça vite fait, je reste sur l'idée que tu peux te contenter d'un simple : vim <le-fichier> dans ton script global qui pourra continuer son travail après la fermeture de vim par tes soins via un simple « :q » (ce qui équivaudra à une validation de ta part de l'itération N pour passer à l'itération N+1). Une fois dans vim, les solutions ne manquent pas en utilisant entre autres : - l'exportation des variables qui peuvent servir dans les programmes qui seront exécutés à partir de vim. - la création (éventuelle) d'un exécutable dans /usr/local/bin/ qui sera appelé dans vim et qui utilisera le fichier vim justement (donné en argument lors de l'appel). Après, forcément, il y aura un peu de travail de ta part pour modifier et réadapter le code, sachant que ce tu as à y gagner c'est surtout la gestion d'un seul terminal (avec quand même aussi une fenêtre pour la visualisation du rendu des images, mais celle-là tu ne peux pas y couper à priori). J'ai cru comprendre que tu avais pas mal d'itérations à te taper, à toi de voir si ça vaut le coup de te lancer dans une modification/restructuration de tes scripts. Voir aussi si c'est un « one-shot » ou si c'est un travail que tu auras à faire à plusieurs reprise etc. etc. Bon courage. ;) -- François Lafont -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org Archive: https://lists.debian.org/lragdh$9nv$1...@ger.gmane.org