Re: tuer vim proprement (?)
- To: debian-user-french@lists.debian.org
- Subject: Re: tuer vim proprement (?)
- From: Francois Lafont <mathsattacks@free.fr>
- Date: Wed, 30 Jul 2014 12:15:43 +0200
- Message-id: <lragdh$9nv$1@ger.gmane.org>
- In-reply-to: <53d8055f$0$2268$426a74cc@news.free.fr>
- References: <53d2cd05$0$2275$426a74cc@news.free.fr> <1406364669.9248.2.camel@azuki.jisui> <53D3A6CE.4020809@gmail.com> <70E4022B-6B65-4DD3-91C6-802CEBECF739@teledetection.fr> <lr0vg2$sgi$1@ger.gmane.org> <53d51e95$0$2059$426a74cc@news.free.fr> <lr3ng0$nsh$1@ger.gmane.org> <53d568e3$0$3645$426a74cc@news.free.fr> <lr3vbl$nqp$1@ger.gmane.org> <53d5e394$0$1999$426a74cc@news.free.fr> <lr524d$qqn$1@ger.gmane.org> <53d63a2e$0$2384$426a74cc@news.free.fr> <lr5uhi$go4$1@ger.gmane.org> <53d8055f$0$2268$426a74cc@news.free.fr>
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
Reply to: