*pi_netrw.txt* Pour Vim version 6.2. Dernière modification : 03 avr 2003
MANUEL de RÉFÉRENCE VIM - par Charles E. Campbell, Jr.
*ftp* *http* *scp* *rcp* *Nread*
*Nwrite* *netrw* *netrw.vim* *network*
Transferts de fichiers depuis le réseau avec Vim
1. Transferts de fichiers depuis le réseau |netrw-xfer|
2. Activation |netrw-activate|
3. Commandes Ex |netrw-ex|
4. Variables |netrw-var|
5. Options utilisateur |netrw-options|
6. Débogage |netrw-debug|
La fonctionnalité mentionnée dans ce fichier est mise en oeuvre par le biais
d'un greffon global |standard-plugin|. Ce greffon n'est chargé que si :
Vous pouvez éviter le chargement de ce greffon en fixant la variable
"loaded_netrw" :{absent de Vi}
==============================================================================
1. Transfert de fichiers depuis le réseau *netrw-xfer*
Le transfert de fichiers depuis le réseau avec Vim est mis en oeuvre avec un
script Vim ("netrw.vim") sous la forme d'un greffon. Actuellement, il supporte
la lecture et l'écriture au travers du réseau en utilisant RCP, SCP, FTP ou
FTP + .netrc, DAV/cadaver et RSYNC.
HTTP n'est supporté que pour la lecture, en utilisant `wget`.
FTP, protocole d'age avancé, bénéficie de nombreuses implémentations.
Malheureusement, certaines sont brouillonnes (elles ajoutent du bruit dans le
fichier). Pour cela, les utilisateurs concernés peuvent décider d'écrire une
fonction NetReadFixup(), qui nettoie le fichier après l'avoir lu avec leur
client FTP. Certains systèmes Unix (notamment FreeBSD) fournissent un
utilitaire appelé "fetch" qui est basé sur le protocole FTP, mais qui s'avère
moins bruyant et bien plus commode, finalement, à utiliser pour "netrw.vim".
Par conséquent, si "fetch" est exécutable, il sera utilisé pour la lecture des
fichiers ftp://... et http://... . Voir |netrw-var| pour davantages
d'informations à ce sujet.
Pour RCP, SCP et HTTP, il est possible d'utiliser le transfert de fichiers
depuis le réseau de manière transparente :
Si votre client FTP supporte le fichier ".netrc", alors il peut être utilisé
de manière tout aussi transparente, si le trio constitué du nom de l'hôte, du
nom d'utilisateur et du mot de passe est présent dans ce fichier. Votre client
FTP doit toutefois être capable d'utiliser le fichier ".netrc" par lui-même.
Cependant, `ftp` devra souvent demander à l'utilisateur un nom d'utilisateur
et un mot de passe. Ce dernier est donné « silencieusement », c'est-à-dire que
des étoiles seront affichés à la place des caractères tapés en réalité.
"netrw.vim" mémorisera le nom d'utilisateur et le mot de passe du transfert le
plus récent afin que les tranferts suivants vers ou depuis le même hôte
puissent avoir lieu sans l'intervention de l'utilisateur.
+==============================+==============================+============+
| La lecture avec | L'écriture avec | utilise |
+==============================+==============================+============+
| RCP : | | |
| rcp://[user@]hôte/chemin | rcp://[user@]hôte/chemin | rcp |
| :Nread rcp://hôte/chemin | :Nwrite rcp://hôte/chemin | rcp |
+------------------------------+------------------------------+------------+
| SCP : | | |
| scp://[user@]hôte/chemin | scp://[user@]hôte/chemin | scp |
| :Nread scp://hôte/chemin | :Nwrite scp://hôte/chemin | scp (*1) |
+------------------------------+------------------------------+------------+
| FTP : | | |
| ftp://[user@]hôte/chemin | ftp://[user@]hôte/chemin | ftp (*2) |
| :Nread ftp://hôte/chemin | :Nwrite ftp://hôte/chemin | ftp+.netrc|
| :Nread hôte chemin | :Nwrite hôte chemin | ftp+.netrc|
| :Nread hôte uid pass chemin | :Nwrite hôte uid pass chemin | ftp |
+------------------------------+------------------------------+------------+
| FTP : si fetch est présent | | |
| ftp://[user@]hôte/chemin | ftp://[user@]hôte/chemin | fetch |
+------------------------------+------------------------------+------------+
| HTTP : | | |
| http://[user@]hôte/chemin | | wget |
| :Nread http://hôte/chemin | | wget |
+------------------------------+------------------------------+------------+
| HTTP : si fetch est présent | | |
| http://[user@]hôte/chemin | | fetch |
+------------------------------+------------------------------+------------+
| DAV : | | |
| dav://hôte/chemin | | cadaver |
| :Nread dav://hôte/chemin | :Nwrite dav://hôte/chemin | cadaver |
+------------------------------+------------------------------+------------+
| RSYNC : | | |
| rsync://[user@]hôte/chemin | rsync://[user@]hôte/chemin | rsync |
| :Nread rsync://hôte/chemin | :Nwrite rsync://hôte/chemin | rsync |
+==============================+==============================+============+
(*1) Pour un chemin absolu, utilisez scp://hôte//chemin.
(*2) Si le fichier ".netrc" existe, "netrw.vim" considère que votre
client FTP en tient compte. Sinon, le script vous demandera un
nom d'utilisateur et un mot de passe.
(*3) Avec FTP, "hôte" peut s'écrire "hôte#port" si un port différent
du port standard FTP est requis.
Les deux commandes Ex ":Nread" et ":Nwrite" acceptent plusieurs noms de
fichiers.
NETRC *netrw-netrc*
La syntaxe typique des lignes d'un fichier ".netrc" est donnée ci-dessous.
Les clients FTP sous Unix supporte généralement le fichier ".netrc". Le client
`ftp` de MS-Windows généralement pas.
Votre client FTP doit gérer l'utilisation de ".netrc" de lui-même, mais si le
fichier ".netrc" existe, un tranfert FTP ne demandera pas de nom d'utilisateur
ni de mot de passe.
NOTE : Comme ce fichier contient des mots de passe, assurez-vous que
personne d'autre ne peut le lire ! La plupart des programmes
refuseront d'utiliser un fichier ".netrc" que les autres peuvent lire.
N'oubliez pas que l'administrateur du système peut tout de même lire
votre fichier !
MOT DE PASSE *netrw-passwd*
Le script tente d'obtenir les mots de passe pour FTP sans les dévoiler, en
utilisant la fonction interne de Vim |inputsecret()|. Voir |netrw-uidpass|
pour savoir comment changer le mot de passe un fois qu'il a été donné.
==============================================================================
2. Activation *netrw-activate*
Les transferts de fichiers depuis le réseau sont disponibles par défaut si le
mode |'nocompatible'| est activé. Le fichier "netrw.vim" se situe dans le
répertoire système des greffons de Vim et est automatiquement sourcé quand Vim
est lancé.
TRANSFERT DE FICHIER TRANSPARENT *netrw-transparent*
Les transferts de fichiers transparents se produisent à chaque fois que la
lecture ou l'écriture d'un fichier a lieu (le transfert est invoqué par une
|autocommand|e déclenchée par les événements |BufReadCmd| et |BufWriteCmd|).
Ainsi, il est possible d'utiliser des fichiers au travers de réseaux comme
s'ils étaient locaux.==============================================================================
3. Commandes Ex *netrw-ex*
Les commandes de lecture/écriture habituelles sont supportées. Plusieurs
commandes supplémentaires sont également disponibles.
:[plage]Nw Écrit les lignes spécifiées dans le fichier
courant, tel qu'il est spécifié dans
"b:netrw_lastfile".
:[plage]Nw {fichreseau} [{fichreseau}]...
Écrit les lignes spécifiées dans {fichreseau}.
:[plage]Nread Lit les lignes spécifiées du fichier spécifié
dans "b:netrw_lastfile" dans le tampon
courant.
:Nread {fichreseau} {fichreseau}...
Insère les {fichreseau} après la ligne
courante.
*netrw-uidpass*
:call NetUserPass() Si "b:netrw_uid" et "b:netrw_passwd"
n'existent pas, les demande à l'utilisateur.
:call NetUserPass("userid") Fixe le nom d'utilisateur ("b:netrw_uid") et
demande le mot de passe à l'utilisateur s'il
n'est pas disponible.
:call NetUserPass("userid", "passwd")
Fixe le nom d'utilisateur ("b:netrw_uid") et
le mot de passe ("b:netrw_passwd").
Les noms d'utilisateur ("userid") et mot de
passe ("passwd") sont utilisés pour les
transferts FTP. Il est possible de les
supprimer en utilisant des chaînes vides "".
==============================================================================
4. Variables *netrw-var*
Le script "netrw.vim" utilise plusieurs variables pour adapter son
fonctionnement. Typiquement, ces variables sont fixées dans le fichier
".vimrc" de l'utilisateur :
LA VARIABLE CONTIENT
g:netrw_uid le nom d'utilisateur actuel pour FTP
g:netrw_passwd le mot de passe actuel pour FTP
b:netrw_lastfile les derniers protocole://hôte/chemin
b:netrw_line le numéro de ligne courante (durant NetWrite)
b:netrw_col la position actuelle du curseur (durant
NetWrite)
g:netrw_ftp 0 pour utiliser les paramètres FTP par défaut
(nomutilisateur motpasse)
1 pour utiliser les paramètres FTP alternatifs
(user nomutilisateur motpasse)
(voir |netrw-options|)
g:netrw_ftpmode "binary" pour le mode binaire, par défault
"ascii" pour le mode texte, si vous préférez
g:netrw_win95ftp 0 pour utiliser `ftp` comme sur Unix, même sur
MS-Windows 95/98/ME/etc.
1 pour utiliser la méthode FTP par défaut
g:netrw_cygwin 1 pour considérer que SCP sous MS-Windows
provient de cygwin (par défaut sur Windows)
0 pour considérer que SCP sous MS-Windows
accepte les chemins de style Windows. (par
défaut sur les autres systèmes).
g:netrw_use_nt_rcp 0 pour ne pas utiliser le RCP de MS-Windows
NT/2K/XP (par défaut)
1 pour utiliser le RCP de MS-Windows en mode
binaire
Les variables suivantes spécifient le programme externe à utiliser pour
prendre en charge le protocole associé (RCP, FTP, etc.), ainsi que les
options. Encore une fois, l'utilisateur peut les changer à sa convenance :
LA VARIABLE CONTIENT PAR DÉFAUT
g:netrw_rcp_cmd "rcp"
g:netrw_ftp_cmd "ftp"
g:netrw_scp_cmd "scp -q"
g:netrw_http_cmd "wget -O"
gnetrw_dav_cmd "cadaver"
g:netrw_rsync_cmd "rsync -a"
g:netrw_fetch_cmd "" Cette variable est utilisée pour FTP
et HTTP en lecture seule uniquement si
elle se termine par "fetch -o"
Le script fait également une utilisation interne des variables suivantes, bien
que temporairement :
LA VARIABLE CONTIENT
g:netrw_method un index indiquant RCP/FTP + .netrc/FTP
g:netrw_machine le nom de l'hôte extrait de la saisie
g:netrw_fname le nom du fichier en cours d'accès
==============================================================================
5. Options utilisateur *netrw-options*
OPTION TYPE VALEUR SIGNIFICATION
netrw_ftp variable nom d'utilisateur fixé avec
n'existe pas "user nomutilisateur"
0 "user nomutilisateur"
1 "nomutilisateur"
NetReadFixup fonction n'existe pas pas de modification
existe permet à l'utilisateur de
traiter automatiquement les
fichier lus avec FTP.
g:netrw_rcp_cmd variable "rcp"
g:netrw_ftp_cmd variable "ftp"
g:netrw_scp_cmd variable "scp -q"
g:netrw_http_cmd variable "wget -O"
g:netrw_dav_cmd variable "cadaver"
g:netrw_rsync_cmd variable "rsync -a"
g:netrw_fetch_cmd variable "" Cette variable est utilisée pour FTP
et HTTP en lecture seule uniquement si
elle se termine par "fetch -o"
Les deux premières options aident toutes deux avec les clients FTP posant des
problèmes. Afin de mieux comprendre comment utiliser ces fonctions dans le cas
où `ftp` pose problème, la discussion suivante aborde en partie la manière
dont le greffon "netrw.vim" effectue la lecture avec FTP.
Les variables g:netrw_..._cmd précisent le programme externe à utiliser pour
prendre en charge le protocole associé (RCP, FTP, etc.), ainsi que des
options.
Typiquement, "netrw.vim" construit des lignes de l'un des formats suivants
dans fichier temporaire :
"netrw.vim" exécute alors les lignes ci-dessus en les utilisant comme filtre :
où
g:netrw_ftp_cmd vaut habituellement "ftp",
-i précise à `ftp` de ne pas être interactif
-n précise de ne pas utiliser ".netrc" (utilisé pour
la méthode n°3 : ftp sans ".netrc")
Si un fichier ".netrc" existe, il est utilisé pour éviter de demander le nom
d'utilisateur et le mot de passe à l'utilisateur. Le fichier tranféré est
placé dans un fichier temporaire. Le fichier temporaire est ensuite lu dans la
fenêtre de la session d'édition principale qui l'a demandé, puis le fichier
temporaire est effacé.
Si votre client FTP n'accepte pas la commande "user" et vous demande
simplement un nom d'utilisateur, essayer d'ajouter "let netrw_ftp=1" dans
votre fichier ".vimrc".
Si votre client FTP génère pour quelques raisons que ce soit des lignes
parasites (par exemple des messages AUTH), vous pouvez écrire une fonction
NetReadFixup() :La fonction NetReadFixup() sera appelée si elle existe, ce qui vous permet de
personnaliser le processus de lecture. À titre d'exemple, le fichier
"netrw.vim" contient une telle fonction, qui prend juste en charge le `ftp` de
MS-Windows 95. Pour certaines raisons, le `ftp` de Windows 95 ajoute quatre
lignes vides à la fin du transfert ; il paraît souhaitable d'automatiser leur
suppression. Voici le code, copié depuis le fichier "netrw.vim" :
==============================================================================
6. Débogage *netrw-debug*
Le script "netrw.vim" est généralement disponible en tant que :
/usr/local/share/vim/vim6x/plugin/netrw.vim
et est chargé automatiquement lors du démarrage de Vim (à supposer que "set
nocp" soit effectif).
1. Récupérer le script "Decho.vim", disponible dans :
http://vim.sourceforge.net/scripts/script.php?script_id=120
et placez-le dans votre répertoire local des greffons.
2. Éditez le fichier "netrw.vim" de la façon suivante :
(pour restaurer l'original utilisez :g/DBG/s/^/"/ )
3. Puis démarrez Vim et tentez un transfert. Des messages devraient
apparaître à propos des étapes traversées par "netrw.vim" pour
tenter de lire/écrire votre fichier à travers le réseau. Merci
d'envoyer ces informations au responsable du script "netrw.vim",
cec@NgrOyphSon.gPsfAc.nMasa.gov - NOSPAM
[N.D.T. : retirez au préalable les lettres N, O, S, P, A, M de
l'adresse électronique ci-dessus.]
vim:tw=78:ts=8:ft=help:norl: