*usr_23.txt* pour Vim version 6.2. Dernière modification : 03 sep 2001
MANUEL de l'UTILISATEUR VIM - par Bram Moolenaar
Éditer d'autres fichiers
Ce chapitre traite de l'édition de fichiers qui ne sont pas des fichiers
ordinaires. Avec Vim, vous pouvez éditer des fichiers compressés ou chiffrés.
Certains fichiers ne sont accessibles qu'au travers d'Internet. Avec quelques
restrictions, les fichiers binaires peuvent également être édités.
|23.1| Fichiers DOS, Mac et Unix
|23.2| Fichiers sur Internet
|23.3| Chiffrement
|23.4| Fichiers binaires
|23.5| Fichiers compressés
Chapitre suivant : |usr_24.txt| Insérer rapidement
Chapitre précédent : |usr_22.txt| Trouver le fichier à éditer
Table des matières : |usr_toc.txt|
==============================================================================
*23.1* Fichiers DOS, Mac et Unix
Aux premiers temps de l'informatique, les anciennes machines « Télétype »
utilisaient deux caractères pour débuter une nouvelle ligne. Un pour ramener
le chariot à la position d'origine (retour chariot ["Carriage Return"], <CR>),
et un autre pour faire avancer le papier (saut-de-ligne ["Line Feed"], <LF>).
À l'apparition des ordinateurs, l'espace de stockage était cher. Certaines
personnes décidèrent qu'elles n'avaient pas besoin de deux caractères pour une
fin-de-ligne. Celles d'Unix choisirent d'utiliser <LF> (tout seul) comme
fin-de-ligne. Celles d'Apple s'accordèrent sur <CR>. Et celles de MS-DOS (puis
MS-Windows) décidèrent de conserver le bon vieux <CR><LF>.
Cela signifie que si vous tentez de passer un fichier d'un système à un
autre, vous rencontrerez des problèmes avec les coupures de lignes. L'éditeur
Vim reconnaît automatiquement les différents formats de fichiers et arrange
discrètement les choses pour que tout se passe correctement.
L'option 'fileformats' contient les différents formats qui sont essayés
quand un nouveau fichier est édité. Par exemple, la commande suivante indique
à Vim de tenter d'abord le format Unix puis le format DOS :Vous remarquerez le format dans le message que vous obtenez lors de l'édition
d'un fichier. Vous ne voyez rien si vous éditez un fichier au format natif.
Ainsi, l'édition d'un fichier Unix sur Unix ne produit aucune remarque. Mais
si vous éditez un fichier DOS, Vim vous l'indiquera :
"/tmp/test" [dos] 3L, 71C
Avec un fichier Mac, vous verriez "[mac]".
Le format de fichier détecté est stocké dans l'option 'fileformat'. Pour
connaître le format utilisé, exécutez la commande suivante :Les trois noms utilisés par Vim sont :
unix <LF>
dos <CR><LF>
mac <CR>
UTILISER LE FORMAT MAC
Sur Unix, <LF> est utilisé pour couper une ligne. Il n'est pas rare d'avoir un
caractère <CR> au beau milieu d'une ligne. Incidemment, cela arrive assez
souvent dans les scripts Vi (et Vim).
Sur le Macintosh, où <CR> est le caractère pour couper une ligne, il est
possible d'avoir des caractères <LF> au milieu d'une ligne.
Le résultat est qu'il est impossible d'être sûr à 100% qu'un fichier qui
contient à la fois des caractères <CR> et des caractères <LF> est un fichier
Unix ou Mac. Par conséquent, Vim suppose que sur Unix, vous n'éditerez
probablement pas de fichiers Mac, et ne vérifie pas ce type de fichier. Pour
vérifier tout de même ce type de fichier, ajoutez "mac" à 'fileformats' :Alors Vim tentera de déterminer le format du fichier. Soyez attentifs aux
situations où Vim se trompe.
FORCER LE FORMAT
Si vous utilisez un bon vieux Vi et que vous tentez d'éditer un fichier au
format DOS, vous verrez que chaque ligne se termine par un caractère ^M (^M
correspond à <CR>). La détection automatique évite cela. Et si vous vouliez
éditer un fichier de cette manière ? Alors vous devez forcer le format :La chaîne "++" est un élément indiquant à Vim que le nom d'une option suit,
dont la valeur qui remplace celle par défaut pour cette unique commande.
"++ff" signifie 'fileformat'. Vous pourriez aussi utiliser "++ff=mac" ou
"++ff=dos".
Cela ne fonctionne pas pour toutes les options, seules "++ff" et "++enc"
sont actuellement implémentées. Les noms complets "++fileformat" et
"++encoding" fonctionnent également.
CONVERSION
Vous pouvez utiliser l'option 'fileformat' pour convertir un format de fichier
en un autre. Supposons, par exemple, que vous avez un fichier MS-DOS appelé
"README.TXT" que vous souhaitez convertir au format Unix. Démarrez l'édition
du fichier au format MS-DOS :Vim va reconnaître un fichier au format DOS. Passez-le à présent au format de
fichier Unix :Le fichier est écrit au format Unix.
==============================================================================
*23.2* Fichiers sur Internet
Quelqu'un vous envoie un message électronique, qui fait référence à un fichier
via une URL. Par exemple :
Les informations sont disponibles ici :
ftp://ftp.vim.org/pub/vim/README
Vous pourriez démarrer un programme pour télécharger le fichier, l'enregistrer
sur un disque local et enfin lancer Vim pour l'éditer.
Il existe un moyen bien plus simple. Placez le curseur sur l'un des
caractères de l'URL. Puis utilisez cette commande :Avec un peu de chance, Vim déterminera le programme à utiliser pour
télécharger le fichier, le téléchargera et éditera la copie. Pour ouvrir le
fichier dans une nouvelle fenêtre, utilisez CTRL-W f.
Si quelque chose se passe mal, vous obtiendrez un message d'erreur. Il est
possible que l'URL soit erronée, que vous n'ayez pas la permission de lecture,
que la connexion soit inactive, etc. Il est malheureusement difficile de
déterminer la cause de l'erreur. Vous préfèrerez alors peut-être tenter le
téléchargement manuel du fichier.
L'accès à des fichiers au travers d'Internet fonctionne avec le greffon
"netrw". Actuellement, les URL avec les formats suivants sont reconnues :
ftp:// utilise `ftp`
rcp:// utilise `rcp`
scp:// utilise `scp`
http:// utilise `wget` (lecture seule)
Vim n'assure pas les communications par lui-même, il repose sur la présence
dans votre ordinateurs des programmes mentionnés ci-dessus. `ftp` et `rcp`
sont présents sur la plupart des systèmes Unix. `scp` et `wget` peuvent
nécessiter une installation.
Vim détecte ces URL dans toutes les commandes qui lancent l'édition d'un
nouveau fichier, par exemple ":edit" et ":split". Les commandes d'écriture
fonctionnent également, à part pour "http://".
Pour davantage d'informations, notamment sur les mots de passe, voir |netrw|.
==============================================================================
*23.3* Chiffrement
Il existe des informations que vous préférez garder pour vous. Par exemple,
lors de l'écriture d'un test sur un ordinateur que des étudiants utilisent
aussi. Vous ne voulez pas que des étudiants astucieux trouvent le moyen de
lire les questions avant que l'examen n'ait lieu. Vim peut chiffrer le texte
pour vous, ce qui vous procure une certaine protection.
Pour lancer l'édition d'un nouveau fichier avec le chiffrement, utilisez
l'argument "-x" pour démarrer Vim. Exemple :Une invite vous demande la clé à utiliser pour le chiffrement et le
déchiffrement du fichier :
Tapez la clé d'encodage:
Saisissez alors soigneusement la clé secrète. Vous ne pouvez pas voir les
caractères que vous tapez, ils sont remplacés par des étoiles. Pour éviter les
situations fâcheuses où une faute de frappe pose problème, Vim vous demande
de saisir à nouveau la clé :
Réentrez la même clé:
Vous pouvez maintenant éditer ce fichier normalement et y mettre tous vos
secrets. Quand vous avez terminé l'édition du fichier et que vous dites à Vim
de quitter, le fichier est chiffré puis écrit.
Quand vous éditez le fichier avec Vim, il vous demandera de saisir la même
clé à nouveau. Vous n'avez pas besoin d'utiliser l'argument "-x". Vous pouvez
aussi utiliser la commande ":edit" du mode Normal. Vim ajoute une chaîne
spécifique au fichier, grâce à laquelle il sait que le fichier a été chiffré.
Si vous essayez de visualiser le fichier avec un autre programme, vous ne
verrez que du bruit. De même, si vous éditez le fichier avec Vim et que vous
saisissez une mauvaise clé, vous n'aurez que du bruit. Vim ne possède pas de
mécanisme pour vérifier si la clé est la bonne (cela rend le cassage de la clé
plus difficile).
ACTIVER OU DÉSACTIVER LE CHIFFREMENT
Pour désactiver le chiffrement d'un fichier, fixez l'option 'key' à une chaîne
vide :La prochaine écriture du fichier sera effectuée sans chiffrement.
Fixez l'option 'key' pour activer le chiffrement est une mauvaise idée, car
le mot de passe apparaît en clair. N'importe qui pourrait le lire par dessus
votre épaule.
Pour éviter ce problème, la commande ":X" a été créee. Elle vous demande
une clé de chiffrement, comme le fait l'argument "-x" :LIMITES DU CHIFFREMENT
L'algorithme de chiffrement utilisé par Vim est faible. Il est suffisamment
solide pour tenir à distance le menu fretin, mais certainement pas assez pour
résister à un expert en chiffrement disposant du temps nécessaire. Soyez
également conscient que le fichier d'échange n'est pas chiffré ; donc quand
vous êtes en cours d'édition, une personne avec les privilèges du
super-utilisateur peut lire le texte non chiffré dans ce fichier.
Une manière d'éviter que des personnes lisent votre fichier d'échange est
de ne pas en utiliser. Si vous spécifiez l'argument "-n" sur la ligne de
commande, aucun fichier d'échange n'est utilisé (à la place, Vim place tout en
mémoire). Par exemple, pour éditer le fichier chiffré "fichier.txt" sans
fichier d'échange, utilisez la commande suivante :Si l'édition est en cours, le fichier d'échange peut être désactivé avec :Comme il n'y a aucun fichier d'échange, le recouvrement est impossible.
Enregistrez le fichier un peu plus souvent pour limiter le risque de perdre
vos modifications.
Tant que le fichier est en mémoire, il n'est pas chiffré. Quiconque disposant
des privilèges suffisants peut regarder dans la mémoire de l'éditeur et
découvrir le contenu du fichier.
Si vous utilisez un fichier "viminfo", soyez conscient que le contenu des
registres y est également écrit en clair.
Si vous voulez vraiment sécuriser le contenu d'un fichier, éditez-le
uniquement sur ordinateur portable non connecté à un réseau, utilisez de bons
outils de chiffrement et conservez l'ordinateur dans un endroit verrouillé
quand vous ne l'utilisez pas.
==============================================================================
*23.4* Fichiers binaires
Vous pouvez éditer des fichiers binaires dans Vim. Vim n'a pas vraiment été
réalisé pour cela, de ce fait, il existe quelques limitations. Mais vous
pouvez lire un fichier, modifier un caractère et l'écrire, avec comme résultat
qu'un seul caractère est modifié et que le reste du fichier est inchangé.
Pour être sûr que Vim n'utilise pas ses mécanismes évoluées à mauvais
escient, ajoutez l'argument "-b" quand vous lancez Vim :Cela active l'option 'binary'. Cela a pour conséquence d'éviter les effets de
bord inattendus. Par exemple, 'textwidth' est fixé à 0, pour éviter la mise en
forme automatique des lignes. Et les fichiers sont toujours lus dans le format
de fichier Unix.
Le mode binaire peut être utilisé pour modifier un message dans un programme.
Prenez soin de ne pas insérer ou effacer de caractère, cela perturberait très
gravement le fonctionnement du programme. Utilisez "R" pour passer en mode
Remplacement.
De nombreux caractères du fichier ne seront pas imprimables. Pour les
visualiser sous forme hexadécimale :Sinon, la commande "ga" permet de voir la valeur du caractère sous le curseur.
La sortie, quand le curseur se trouve un caractère <Echap>, ressemble à ceci :
<^[> 27, Hex 1b, Octal 033
Il se peut que le fichier contienne peu de coupures de ligne. Pour avoir une
vision d'ensemble, désactivez l'option 'wrap' :POSITION EN OCTETS
Pour savoir sur quel octet du fichier vous vous trouvez, utilisez cette
commande :La sortie est bavarde :
Col 9-16 de 9-16; Ligne 277 de 330; Mot 1806 de 2058; Octet 10580 de 12206
Les deux derniers nombres sont la position en octets dans le fichier et le
nombre total d'octets. Ces nombres prennent en compte la manière dont
'fileformat' change le nombre d'octets utilisés pour les coupures de lignes.
Pour aller sur un octet particulier du fichier, utilisez la commande "go".
Par exemple, pour aller sur l'octet 2345 :UTILISER XXD
Un véritable éditeur binaire affiche le texte de deux manières : tel qu'il est
et mis en forme en hexadécimal. Vous pouvez le faire avec Vim en convertissant
d'abord le fichier avec le programme `xxd`. Il est fourni avec Vim.
Commencez par éditer le fichier en mode binaire :À présent, convertissez le fichier dans sa représentation hexadécimale avec
`xxd` :Le texte ressemblera à ceci :
0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+NI
0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 K,.`.....b..4^.0
0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59.
Vous pouvez maintenant voir et éditer le texte comme vous le souhaitez. Vim
traite les informations comme du texte ordinaire. Modifier l'hexadécimal ne
provoque pas la modification du caractère imprimable et inversement.
Finalement, effectez la conversion inverse avec :Seules les modifications dans la partie hexadécimale sont prises en compte.
Les modifications sur le texte imprimable situé à droite sont ignorées.
Voir la page de manuel de `xxd` pour davantage d'informations.
==============================================================================
*23.5* Fichiers compressés
C'est simple : vous pouvez éditer les fichiers compressés comme n'importe quel
autre fichier. Le greffon "gzip" prend en charge la décompression du fichier
quand vous l'éditez. Et le compresse à nouveau quand vous l'enregistrez.
Les méthodes de compression actuellement supportées sont :
.Z compress
.gz gzip
.bz2 bzip2
Vim utilise les programme mentionnés pour réaliser la compression et la
décompression. Il est possible qu'il vous soit nécessaire d'installer ces
programmes auparavant.
==============================================================================
Chapitre suivant : |usr_24.txt| Insérer rapidement
Copyright : voir |manual-copyright| vim:tw=78:ts=8:ft=help:norl: