Accueil > [old] Information > Archives > Technologies > GNU / Linux / Réseau > Gedit - synchronisation de fichiers distants
Gedit - synchronisation de fichiers distants
Utilisation des outils externes
mardi 3 avril 2007, par
Situation
Ayant récemment rejoint le monde Linux (Ubuntu Edgy), j’ai longtemps cherché LA bonne application d’édition de code orientée Web. Mon besoin est notamment d’éditer des pages sur le serveur avec un outil de synchronisation local à l’enregistrement, de type Ultraedit sous Windows.
Voici la liste des solutions testées :
– fuse et curlftpfs
- solution pratique pour accéder à des répertoires distants dans son home : fuse
- problèmes récurrents de perte de connexion et de fiabilité des transferts (la version utilisée était en beta sous Edgy, elle devrait être plus stable sous Feisty). Je joins de ce fait le script utilisé qui pourrait être utile à l’avenir : Monte_FTP.sh.
– Anjuta, jedit, Kate, KWrite, Quanta+, Eclipse
- soit trop simples, soit trop compliqués, les editeurs testés ne comportaient pas (de mon expérience) de solution pour synchroniser, ou parfois ouvrir, les fichiers distants en local.
– vi et autres emacs
- le retour à la ligne de commande est difficile après plusieurs années d’éditeur de texte riche...
– wine + Ultraedit
- la fonction de lecture / écriture FTP ne fonctionne pas
– Screem : la solution presque parfaite
- screem se greffe sur le module gnome-vfs et permets l’ouverture des comptes ftp créés dans les signets de Nautilus. Le problème de type mime attribués aux répertoires distants dans gnome-vfs a été corrigé dans la version 2.18 de gnome-vfs (feisty).
- permets la synchronistation des comptes ftp distants mais pas dans le sens descendant
- le chargement du profil est extrêmement long après quelques jours d’utilisation
– gedit : retour aux outils simples et paramétrables, c’est finalement cette solution qui est apparue à la fois la plus stable et la plus modulaire pour répondre au besoin
Gedit
Gedit est l’éditeur de texte intégré nativement au bureau gnome.
Cette application aux fonctionnalités simples permets, comme la plupart des outils sous Linux, une personnalisation avancée des préférences et l’édition de plugins sur mesure... au prix d’un peu de main dans le code.
Afin de répondre à mon besoin donc j’ai utilisé les outils externes de gedit :
– > Outil > Outils Externes > Nouveau
– Entrer la Description de l’outil et la touche de raccourci associée
– Entrée : document actuel
– Sortie : Afficher dans le panneau inférieur
– Applicabilité : Uniquement les fichiers distants
– Commandes : copier/coller le code source ci-dessous en modifiant la variable rep contenant le répertoire d’enregistrement local

Gedit utilise des variables d’environnement disponibles dans le contexte d’édition de l’article et du fonctionnement du plugin :
– $GEDIT_CURRENT_DOCUMENT_URI : chemin et nom complets du document
– $GEDIT_CURRENT_DOCUMENT_NAME : nom du document
Les commandes du plugin permettent ainsi l’enregistrement du fichier dans :
– le répertoire ftp distant (par défaut gedit ouvre les fichiers ftp en lecture seule)
– le répertoire local ( /home/nom/www par exemple) auquel est ajouté l’adresse ftp du fichier actuel (/home/nom/www/site dans le cas de ftp://login@site/repertoire/fichier ).
Code de l’outil
#!/bin/bash
#Définition du répertoire de travail
rep="/home/pvincent/Desktop/www"
#Copie locale temporaire
if ! [ -d "$rep/tmp" ];
then mkdir "$rep/tmp";
fi
cat $1 > $rep/tmp/$GEDIT_CURRENT_DOCUMENT_NAME
#Copie distante (fichiers ftp ouverts en lecture seule)
echo "DISTANT : gnomevfs-copy" $rep/tmp/$GEDIT_CURRENT_DOCUMENT_NAME
gnomevfs-copy $rep/tmp/$GEDIT_CURRENT_DOCUMENT_NAME $GEDIT_CURRENT_DOCUMENT_URI
#Extraction du nom du site
export HOTE=<span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+ZWNobyAkR0VESVRfQ1VSUkVOVF9ET0NVTUVOVF9VUkkgfCBzZWQgLWUgJ3MvLipAXCguKlwpXC8uKi9cMS9naSc8L2NvZGU+"></span>
#Création du répertoire si non existant
if ! [ -d "$rep/$HOTE" ];
then mkdir -p "$rep/$HOTE";
fi
#Copie locale
echo "LOCAL : rcp " $rep/$HOTE/$GEDIT_CURRENT_DOCUMENT_NAME
rcp $rep/tmp/$GEDIT_CURRENT_DOCUMENT_NAME $rep/$HOTE
#Effacement de la copie locale temporaire
gnomevfs-rm $rep/tmp/$GEDIT_CURRENT_DOCUMENT_NAMEUn message, un commentaire ?
Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.
back.projets.erasme.org
Messages
1. Complément, 9 avril 2007, 00:02, par Patrick Vincent
L’option lecture/ecriture des fichiers ouverts en ftp sous gedit est désactivée par défaut (pour des raisons de fiabilité semble-t-il).
Cette option peut être modifiée de la manière suivante :
– Lancer(ALT+F2) : gconf-editor
– apps>gedit-2>preferences>editor>/save>writable_vfs_schemes
ajouter : ftp
Avec cette nouvelle situation, le script précédent peut être associé à la touche d’enregistrement CTRL+S et peut être simplifié :
1. Complément, 15 juin 2007, 09:48
Merci ! Merci ! Merci !
2. Complément, 30 août 2008, 09:57, par spontex
Salut,
Juste une petite coquille dans le script ci-dessus : à la dernière ligne, il faut écrire :
3. Complément, 30 août 2008, 10:05, par spontex
Une question : quand j’associe ce script au raccourci Ctrl+S, il remplace l’enregistrement "classique", et du coup mes fichiers ne sont pas enregistrés en FTP (alors que quand j’utilise l’icône Enregistrer, l’enregistrement FTP se fait bien).
Comment-faire pour que Ctrl+S active à la fois l’enregisrement local et l’enregistrement distant ?
Merci !