*vi_diff.txt*   Pour Vim version 6.2.


		 MANUEL de RÉFÉRENCE VIM - par Bram Moolenaar


Différences entre Vim et Vi				*vi-differences*

Tout au long des fichiers de l'aide, les différences entre Vim et Vi/Ex sont
signalées à l'aide d'accolades, par exemple : « {absent de vi} ». Ce fichier
aborde seulement les points qui n'ont pas déjà été mentionnés dans les autres
fichiers et en donne une vue d'ensemble.

Vim est en grande partie conforme à la norme POSIX 1003.2-1. La seule commande
connue pour être manquante est ":open". Il existe probablement de nombreuses
petites différences (soit parce que Vim est incomplet, soit à cause des
imprécisions de POSIX).

1. Commandes manquantes			|missing-commands|
2. Options manquantes			|missing-options|
3. Limitations				|limits|
4. Ajouts les plus intéressants		|vim-additions|
5. Autres fonctionnalités de Vim	|other-features|
6. Arguments de la ligne de commande	|cmdline-arguments|

==============================================================================
1. Commandes manquantes					*missing-commands*

Cette commande existe dans Vi, mais pas dans Vim :

:o[pen]		{Vi : lance l'édition en mode Open}	*:o* *:op* *:open*

==============================================================================
2. Options manquantes					*missing-options*

Ces options existent dans le Vi d'Unix, mais pas dans Vim. Si vous tentez de
fixer l'une d'entre elles, vous n'obtiendrez pas de message d'erreur, mais sa
valeur ne sera pas utilisée et il ne sera pas possible de l'afficher.

autoprint (ap)		booléen	(activé par défaut)	*'autoprint'* *'ap'*
beautify (bf)		booléen	(désactivé par défaut)	*'beautify'* *'bf'*
flash (fl)		booléen	(??? par défaut)	*'flash'* *'fl'*
graphic (gr)		booléen	(désactivé par défaut)	*'graphic'* *'gr'*
hardtabs (ht)		nombre	(8 par défaut)		*'hardtabs'* *'ht'*
	Nombre d'espaces dont un <Tab> déplace sur l'affichage
mesg			booléen	(activé par défaut)	*'mesg'*
novice			booléen	(désactivé par défaut)	*'novice'*
open			booléen	(activé par défaut)	*'open'*
optimize (op)		booléen	(désactivé par défaut)	*'optimize'* *'op'*
prompt			booléen	(activé par défaut)	*'prompt'*
redraw			booléen	(désactivé par défaut)	*'redraw'*
slowopen (slow)		booléen	(désactivé par défaut)	*'slowopen'* *'slow'*
sourceany		booléen	(désactivé par défaut)	*'sourceany'*
window (wi)		nombre	(23 par défaut)		*'window'* *'wi'*
w300			nombre	(23 par défaut)		*'w300'*
w1200			nombre	(23 par défaut)		*'w1200'*
w9600			nombre	(23 par défaut)		*'w9600'*

==============================================================================
3. Limitations						*limits*

Vim n'a que peu de limitations envers les fichiers qu'il peut éditer {Vi ne
prend pas en charge les caractères <NUL> ou supérieurs à 128, limite la
longueur des lignes et possède de nombreuses autres limitations}.

							*E340*
Longueur maximale d'une ligne	Sur les machines dont les entiers ("int") font
				16 bits (Amiga et DOS en mode réel) : 32 767
				caractères ; 2 147 483 647 sinon. Les lignes
				plus longues sont coupées.
       
Nombre maximal de lignes	2 147 483 647 lignes.

Taille maximale de fichier	2 147 483 647 octets (2 Go) quand les entiers
				longs ("long") font 32 bits ; beaucoup plus
				quand ils font 64 bits. Également limitée par
				l'espace disponible sur le disque pour le
				fichier d'échange |swap-file|.

							*E75*
Longueur d'un nom de fichier	Unix et Win32 : 1024 caractères, 256 sinon (ou
				autant que le système en supporte).

Longueur d'une option
chaîne expansée			Unix et Win32 : 1024 caractères, 256 sinon.

Largeur maximale du terminal	Unix et Win32 : 1024 caractères, 256 sinon.

Longueur maximale du ctg
d'un mappage			50 caractères.

Nombre maximal de types de
surbrillance différents		223 types.

Les données nécessaires aux annulations et le texte contenu dans les registres
sont conservés en mémoire. Ainsi, lorsque vous effectuez des (gros)
changements, la quantité de mémoire (virtuelle) disponible limite le nombre de
niveaux d'annulation et le texte que les registres peuvent contenir. Sont
également conservés en mémoire l'historique de la ligne de commande, les
messages d'erreurs du mode mise-au-point, etc.


LIMITES À L'UTILISATION DE LA MÉMOIRE
-------------------------------------

L'option 'maxmem' ('mm') permet de préciser la quantité maximale de mémoire
utilisée pour un tampon (en kilo-octets). 'maxmemtot' permet de préciser la
quantité maximale de mémoire utilisée pour tous les tampons (en kilo-octets).
Les valeurs par défaut dépendent du système utilisé. Pour Amiga et MS-DOS,
'maxmemtot' est fixé selon la quantité de mémoire disponible. Si vous ne
souhaitez pas que Vim utilise un fichier d'échange pendant l'édition, fixez
'maxmem' et 'maxmemtot' à une très grande valeur. Le fichier d'échange ne sera
alors utilisé que pour le recouvrement. Si vous ne souhaitez pas de fichier
d'échange du tout, fixez 'updatecount' à 0, ou bien utilisez l'argument "-n"
lorsque vous lancez Vim. NOTE : L'option 'maxmem' n'est prise en compte qu'à
la création d'un tampon. La modification de cette option n'affecte pas les
tampons déjà chargés. De cette manière, vous pouvez définir différentes
valeurs pour différents fichiers. 'maxmemtot' reste valable en permanence.

==============================================================================
4. Ajouts les plus intéressants				*vim-additions*

Compatibilité Vi					|'compatible'|
	Bien que Vim soit compatible à 99 % avec Vi, certains points de Vi
	peuvent être considérés comme des bogues, ou alors nécessiter quelques
	améliorations. Vim démarre pourtant dans un mode imitant le plus
	possible le « vrai » Vi. Pour qu'il se comporte un petit peu mieux,
	vous pouvez désactiver l'option 'compatible'
		:set nocompatible
	ou lancer Vim avec l'argument "-N" :
		vim -N
	Ce comportement est automatique si vous disposez d'un fichier vimrc.
	Voir |startup|.
	L'option 'cpoptions' peut être utilisée pour activer/désactiver la
	compatibilité Vi sur certains points particuliers. |'cpoptions'|
	
Support pour différents systèmes
	Vous pouvez utiliser Vim sur :
	- tous les systèmes Unix (il fonctionne sur tous les systèmes sur
	  lesquels il a été testé, bien que l'IHM graphique et l'interface
	  Perl puissent ne pas fonctionner partout) ;
	- Amiga (500, 1000, 1200, 2000, 3000, 4000,...) ;
	- MS-DOS en mode réel (aucun pilote supplémentaire n'est nécessaire) ;
	- en mode protégé sous Windows 3.1 et MS-DOS (pilote DPMI nécessaire) ;
	- Windows 95 et NT, avec le support des noms de fichiers longs ;
	- OS/2 (nécessite "emx.dll") ;
	- Atari MiNT ;
	- VMS ;
	- BeOS ;
	- Macintosh ;
	- RISC OS ;
	- IBM OS/390 (alias z/OS).

Annulation multi-niveaux				|undo|
	'u' revient en arrière, CTRL-R ravance dans le temps. Fixez l'option
	'undolevels' au nombre de changements devant être mémorisés (1000 par
	défaut). Fixez 'undolevels' à 0 pour obtenir une annulation à un
	niveau compatible avec Vi. Fixez-le à -1 si vous ne voulez aucune
	annulation.

	Quand tous les changements dans un tampon ont été annulés, le tampon
	n'est plus considéré comme modifié. Vous pouvez le quitter avec ":q",
	sans le '!'.

L'Interface Homme/Machine Graphique			|gui|
	Le support de l'IHM graphique comprend les menus, la souris, les
	barres de défilement, etc. Vous pouvez définir vos propres menus.
	Support amélioré des touches Ctrl/Maj/Alt en combinaison avec les
	touches spéciales et la souris.
	L'IHM graphique existe actuellement pour X11 (avec les interfaces
	Motif et Athena), Win32 (Windows 95 et NT), BeOS, Amiga et Macintosh.
	XXX

Fenêtres et tampons multiples				|windows.txt|
	Vim peut partager l'écran en plusieurs fenêtres, chacune éditant un
	tampon différent ou le même tampon à différents emplacements. Les
	tampons peuvent être chargés (et modifiés) sans être nécessairement
	affichés dans une fenêtre. On parle alors de tampon caché.
	De nombreuses commandes et options ont été ajoutées pour ces
	fonctionnalités.

Coloration syntaxique					|:syntax|
	Vim peut mettre en surbrillance des mots-clés, des motifs et d'autres
	choses encore. Un certain nombre de commandes ":syntax" sont utilisées
	pour cela et peuvent servir à la coloration de la plupart des langages
	et des types de fichiers. De nombreux fichiers sont inclus pour la
	coloration des langages les plus courants, tels que le C, le C++,
	Java, Pascal, les Makefile, les scripts shell, etc. Les couleurs
	employées pour la coloration peuvent être définies pour des terminaux
	classiques, des terminaux couleur et l'IHM graphique avec la commande
	":highlight".

Repliage						|folding|
	Une plage de ligne peut être représentée comme une seule ligne 
	« repliée ». Cela permet d'avoir un vue d'ensemble sur un fichier et
	de déplacer rapidement des blocs de texte. Les replis peuvent être
	créés manuellement, selon la syntaxe d'un fichier, selon
	l'indentation, etc.

Greffons						|add-plugin|
	Les possibilités de Vim peuvent être étendues en déposant un fichier
	de greffon dans le répertoire approprié. Cela offre une manière simple
	pour utiliser des scripts Vim écrits par d'autres personnes. Les
	greffons peuvent concerner tous les fichiers ou n'être destinés qu'à
	certains types de fichiers.

Répéter une série de commandes				|q|
	"q{c}" démarre l'enregistrement des caractères saisis dans le registre
	nommé {c} (ajoute à la fin du registre si son nom est en majuscule).
	Un 'q' supplémentaire arrête l'enregistrement. Le registre peut alors
	être exécuté avec la commande "@{c}". C'est très utile pour répéter
	une action compliquée.

Mode Insertion flexible					|ins-special-special|
	Les touches fléchées peuvent être utilisées pour se déplacer dans le
	fichier en mode Insertion. Cela sépare l'insertion en deux parties en
	ce qui concerne l'annulation et la restauration.

	CTRL-O peut être utilisé pour exécuter une commande simple en mode
	Normal. Cela revient à taper <Echap>, puis la commande, puis 'a'.

Mode Visuel						|Visual-mode|
	Le mode Visuel peut être utilisé pour mettre en surbrillance une
	partie du texte puis donner une commande pour la traiter. C'est une
	alternative (plus simple d'utilisation) à la saisie d'un opérateur
	suivie d'un déplacement à la fin du texte sur lequel il doit opérer.
	"v" et "V" permettent de passer en mode Visuel. "v" travaille sur les
	caractères et "V" sur les lignes. Le déplacement du curseur étend la
	zone Visuel. Elle est affichée en surbrillance à l'écran. Vous pouvez
	atteindre l'autre extrémité de la zone en tapant "o". Le texte de la
	zone Visuel peut être affecté par un opérateur :
		d	couper					     ["Delete"]
		c	changer
		y	copier					       ["Yank"]
		> ou <	augmenter ou diminuer l'indentation
		!	filtrer avec un programme externe
		=	filtrer avec `indent`
		:	commencer une commande ":" pour la zone Visuel
		gq	mettre le texte en forme sur 'textwidth' colonnes
		J	fusionner les lignes			       ["Join"]
		~	inverser la casse
		u	passer en minuscules
		U	passer en majuscules			  ["Uppercase"]

Opérateurs par blocs					|visual-block|
	En mode Visuel, il est possible de sélectionner un bloc de texte
	rectangulaire. Lancez le mode Visuel avec CTRL-V : le bloc peut être
	coupé ("d"), copié ("y") ou voir sa casse modifiée ("~", "u" et "U").
	Un bloc coupé ou copié peut être collé dans le texte avec les
	commandes "p" et "P".

Système d'aide en ligne					|:help|
	L'aide est affichée dans une fenêtre. Les commandes habituelles
	peuvent être utilisées pour se déplacer, rechercher une chaîne, etc.
	Les marqueurs sont utilisés pour naviguer dans les fichiers de l'aide,
	comme des liens hypertextes. La commande ":help" accepte un argument
	afin d'accéder rapidement à l'aide sur un sujet précis. <F1> est un
	raccourci vers le système d'aide. L'option 'helpfile' permet de fixer
	le nom du fichier contenant l'index de l'aide.

Édition et historique de la ligne de commande		|cmdline-editing|
	Vous pouvez insérer ou effacer des caractères n'importe où dans la
	ligne de commande en utilisant les touches fléchées. Les touches
	fléchées droite/gauche servent à se déplacer d'un caractère vers
	l'avant/l'arrière. Les mêmes touches en combinaison avec Maj
	permettent de se déplacer d'un mot vers l'avant/l'arrière.
	CTRL-B/CTRL-E peuvent être utilisés pour aller au début/à la fin de
	la ligne de commande.
							|cmdline-history|
	Les lignes de commandes sont mémorisées. Les touches fléchées haut/bas
	permettent de rappeler les lignes de commande précédentes. Le nombre
	de lignes à mémoriser peut être défini avec l'option 'history'.
	L'historique des commandes est distinct de l'historique des motifs de
	recherche.

Complètement de la ligne de commande			|cmdline-completion|
	Lors de la saisie d'une ligne de commande (sur la ligne située en bas
	de l'écran), vous pouvez taper <Tab> pour compléter...
	    ...				EXEMPLE  
	    une commande		:e<Tab>
	    un marqueur			:ta scr<Tab>
	    une option			:set sc<Tab>
	    la valeur d'une option	:set hf=<Tab>
	    un nom de fichier		:e ve<Tab>
	    etc.

	S'il y a plusieurs correspondances, CTRL-N (["Next"], « suivant ») et
	CTRL-P (« Précédent ») permettront de les faire défiler. <Tab>
	fonctionne comme CTRL-N, mais reboucle à la première correspondance.

	L'option 'wildchar' permet de définir le caractère utilisé pour le
	complètement de la ligne de commande. Sa valeur par défaut est <Tab>.
	CTRL-D peut être tapé après un joker (incomplet) ; toutes les
	correspondances seront listées. CTRL-A insérera toutes les
	correspondances, et CTRL-L leur plus longue partie commune.

Complètement en mode Insertion				|ins-completion|
	En mode Insertion, les touches CTRL-N et CTRL-P peuvent être utilisées
	pour compléter un mot qui a déjà été utilisé. |i_CTRL-N|
	CTRL-X permet d'activer un sous-mode particulier, dans lequel le
	complètement porte sur :
	|i_CTRL-X_CTRL-F|   les noms de fichiers
	|i_CTRL-X_CTRL-K|   les mots d'un dictionnaire
	|i_CTRL-X_CTRL-I|   les mots d'un fichier inclus
	|i_CTRL-X_CTRL-L|   des lignes complètes
	|i_CTRL-X_CTRL-]|   les mots d'un fichier de marqueurs
	|i_CTRL-X_CTRL-D|   les définitions et les macros

Support des lignes longues				|'wrap'| |'linebreak'|
	Si l'option 'wrap' est désactivée, les lignes longues ne seront pas
	enroulées et ne seront que partiellement affichées. Quand le curseur
	est déplacé vers une partie non affichée, l'écran défile
	horizontalement. L'option 'sidescroll' permet de fixer le nombre
	minimal de colonnes pour le défilement. Les commandes "zh" et "zl"
	peuvent être utilisées pour faire défiler l'écran latéralement.
	Il est possible d'utiliser l'option 'linebreak' pour provoquer la
	césure (uniquement à l'écran) des lignes longues sur des blancs entre
	les mots. C'est pratique pour éditer un paragraphe formé d'une seule
	ligne (par exemple pour du texte lu ultérieurement par un programme de
	PAO). Vous pouvez déplacer le curseur vers le haut/bas avec les
	commandes "gk" et "gj".

Mise en forme du texte					|formatting|
	L'option 'textwidth' permet de limiter automatiquement la longueur des
	lignes. Elle complète l'option 'wrapmargin' de Vi, qui n'était pas
	très utile. L'opérateur "gq" peut être utilisé pour mettre en forme
	une portion de texte (par exemple, "gqap" met en forme le paragraphe
	courant). Vim dispose de commandes pour l'alignement du texte :
	":center", ":left", ":right".

Motifs de recherche étendus				|pattern|
	Il existe de nombreux éléments supplémentaires pour correspondre avec
	divers éléments de texte. Exemples :
	- "\n" peut être utilisé dans un motif de recherche pour correspondre
	  avec une coupure de ligne ;
	- "x\{2,4} correspond à 2, 3 ou 4 "x" ;
	- "\s" correspond à un caractère d'espace blanc.

Accélération du cycle édition-compilation-édition	|quickfix|
	La commande ":make" permet de lancer la compilation et de sauter à la
	première erreur. Vim peut aussi être invoqué depuis le compilateur
	avec l'argument "-q". Un fichier contenant les messages d'erreurs du
	compilateur est interprété, Vim démarre l'édition à la première
	erreur.

	Chaque ligne du fichier des erreurs est analysée pour y trouver le nom
	d'un fichier, un numéro de ligne et un message d'erreur. L'option
	'errorformat' permet de préciser comment traiter la sortie d'un
	compilateur, avec une chaîne contenant des formateurs à la manière de
	scanf.

	La commande ":cn" permet de sauter à l'erreur suivante.
	La commande ":cl" affiche tous les messages d'erreurs. D'autres
	commandes sont également disponibles (quasiment les mêmes que celle de
	l'éditeur Z de Manx sur Amiga).
	L'option 'makeef' précise le nom du fichier contenant les messages
	d'erreurs.
	L'option 'makeprg' contient le nom du programme à exécuter lors de
	l'invocation de la commande ":make".
	L'option 'shellpipe' contient la chaîne à utiliser pour rediriger la
	sortie du compilateur vers le fichier d'erreurs.

Indentation améliorée des programmes en C		|'cindent'|
	Lorsque l'option 'cindent' est activée, l'indentation de chaque ligne
	est ajustée automatiquement. La syntaxe du C est reconnue presque
	entièrement. L'option 'cinoptions' permet de définir différents styles
	d'indentation. L'option 'cinkeys' précise les touches provoquant
	l'indentation.

	Les commentaires peuvent être mis en forme automatiquement. L'option
	'comments' précise les caractères débutant et terminant un
	commentaire. Cela fonctionne de manière optimale pour le C, mais
	également pour les courriels ('>' au début de la ligne) et d'autres
	types de texte. L'opérateur "=" permet de réindenter les lignes.

Recherche de mots dans les fichiers inclus		|include-search|
	La commande "[i" permet de rechercher les correspondances du mot sous
	le curseur dans le fichier courant et les fichiers inclus. L'option
	'include' contient un motif auquel doivent correspondre les commandes
	permettant l'inclusion d'un fichier (la valeur par défaut fonctionne
	pour les programmes en C). La commande "[I" donne la liste de toutes
	les correspondances, la commande "[ CTRL-I" saute à une
	correspondance.
	Les commandes "[d", "[D" et "[ CTRL-D" font la même chose, mais
	uniquement pour les lignes dans lesquelles le motif spécifié dans
	'include' correspond.

Commandes automatiques					|autocommand|
	Vim est capable d'exécuter automatiquement des commandes lors de la
	lecture d'un fichier, un enregistrement, le saut vers un autre tampon,
	etc., en fonction du nom du fichier traité. C'est très utile pour
	fixer des options et définir des mappages pour des programmes C, de la
	documentation, du texte brut, des courriels, etc. Cela permet aussi
	d'éditer des fichiers compactés.

Scripts et expressions					|expression|
	Des commandes ont été ajoutées pour mettre en oeuvre un langage de
	script simple mais puissant.
	|:if|	     exécution conditionnelle (permet par exemple de fixer des
			options selon la valeur de $TERM)
	|:while|     répète un groupe de commandes
	|:echo|	     affiche le résultat d'une expression
	|:let|	     affecte une valeur à une variable interne, une option,
			etc.
	|:execute|   exécute une commande formée par une expression
	etc.

Viminfo							|viminfo-file|
	L'historique de la ligne de commande, les marques et les registres
	peuvent être enregistrés dans un fichier qui sera lu au démarrage.
	Cela vous permet de rappeler une commande de recherche ou une ligne de
	commande après être sorti puis avoir redémarré Vim. Il est également
	possible de sauter à l'endroit où l'édition précédente s'était arrêtée
	avec "'0". L'option 'viminfo' permet de choisir les éléments à
	enregistrer dans le fichier viminfo. Celui-ci n'est pas activé par
	défaut.

Support de la souris					|mouse-using|
	La souris est supportée dans la version IHM graphique, dans les xterm
	d'Unix, sous Linux avec gpm, sous MS-DOS et Win32. Vous pouvez
	l'utiliser pour déplacer le curseur, sélectionner une zone Visuel,
	coller le contenu d'un registre, etc.

Nommage des touches spéciales				|<>| |key-notation|
	Toutes les touches spéciales ont à présent un nom, tel que <Up>,
	<End>, etc.
	Ce nom peut être utilisé dans les mappages pour en faciliter
	l'édition.

Édition de fichiers binaires.				|edit-binary|
	Vim peut éditer les fichiers binaires. Vous pouvez modifier quelques
	caractères dans un fichier exécutable sans le corrompre. Les
	caractères NUL (représentés par <NL> en interne) seront préservés.
	|-b|	     argument de la ligne de commande à utiliser pour lancer
			l'édition d'un fichier binaire
	|'binary'|   option activée par "-b" ; évite l'ajout d'un <EOL> à la
			dernière ligne du fichier

Support du multilinguisme				|multi-lang|
	Les fichiers utilisant un codage multi-octects peuvent être édités.
	L'UTF-8 est supporté pour pouvoir gérer différentes langues
	simultanément, sans changer de polices. |UTF-8|
	Les messages et les menus sont disponibles dans différentes langues.

==============================================================================
5. Autres fonctionnalités de Vim			*other-features*

Vous trouverez ici, pêle-mêle, une brochette de fonctionnalités
supplémentaires bien sympathiques.


Lorsque Vim est démarré avec "-s {fichscript}", les caractères lus dans
{fichscript} sont traités comme si vous les aviez tapés. Si la fin du
fichier est atteinte avant la sortie de l'éditeur, les caractères suivants
sont lus depuis la console.

L'option "-w" permet d'enregistrer tous les caractères saisis dans un fichier
de script. Ce fichier peut ensuite être utilisé pour refaire la même édition,
éventuellement sur un autre fichier, ou après avoir modifié certaines
commandes dans le script.

L'option "-o" ouvre une fenêtre pour chaque argument. "-o4" ouvre quatre
fenêtres.

Vi requiert plusieurs entrées termcap pour pouvoir fonctionner en plein
écran. Vim n'a besoin que de l'entrée "cm" ["cursor motion"].


EN MODE NORMAL

Quand l'option 'showcmd' est activée, les caractères constituant la commande
courante sont affichés sur la dernière ligne de l'écran. Ils sont effacés
quand la commande est terminée.

Quand l'option 'ruler' est activée, la position actuelle du curseur est
affichée sur la dernière ligne de l'écran.

"U" fonctionne même après avoir déplacé la dernière ligne modifiée et après
"u".

Les caractères avec le 8e bit positionné sont affichés. Les caractères entre
'~' et 0xA0 sont représentés "~?", "~@", "~A", etc. à l'écran, à moins que
l'option 'graphic' ne soit activée. XXX

"][" va à la prochaine fin de fonction C ('}' dans la colonne 1).
   "[]" va à la fin précédente de fonction C ('}' dans la colonne 1).

"]f", "[f" et "gf" permettent d'éditer le fichier dont le nom est sous le
curseur. "CTRL-W f" partage la fenêtre courante et édite fichier dont le
nom est sous le curseur.

"*" recherche l'identifiant sous le curseur vers l'avant, "#" vers l'arrière.

"K" lance le programme spécifié par l'option 'keywordprg' avec l'identifiant
sous le curseur comme argument.

"%" peut être précédé d'un quantificateur. Le curseur saute alors à la ligne
correspondant à cette position en pourcentage dans le fichier. La fonction "%"
normale permettant de trouver la parenthèse appariée ignore les délimiteurs
situées entre doubles-apostrophes.

Avec la commande CTRL-], le curseur peut être positionné n'importe où sur
l'identifiant.

Les marqueurs utilisés sont mémorisés. Les commandes utilisables avec la pile
des marqueurs sont CTRL-T, ":pop" et ":tag". ":tags" donne la liste des
marqueurs.

L'option 'tags' peut contenir une liste de fichiers de marqueurs. Ainsi,
plusieurs fichiers de marqueurs peuvent être employés. Pour les noms de
fichiers commençant par un '.', le '.' est remplacé par le chemin du fichier
courant. Cela permet d'utiliser un fichier de marqueurs situé dans le même
répertoire que le fichier en cours d'édition.

Les noms de fichiers précédemment utilisés sont mémorisés dans la liste des
tampons. CTRL-^ accepte un quantificateur, représentant un index dans cette
liste.

Les motifs de recherche supportent des fonctionnalités supplémentaires. Le
caractère <NL> est considéré comme un caractère de motif de recherche ou de
chaîne de substitution d'une commande ":s". Vi le considère comme la fin de la
commande.

Les recherches peuvent amener le curseur à la fin de la correspondance et
peuvent inclure un décalage.

Quantificateur ajouté pour "~", ":next", ":Next", "n" et "N".

La commande ":next!" avec 'autowrite' activé n'enregistre pas le fichier. Dans
Vi, le fichier est enregistré, mais c'est considéré comme un bogue car
l'utilisateur ne s'y attend pas alors qu'il ne l'est pas avec ":rewind!".

Dans Vi, la saisie d'un <CR> en mode Remplacement efface un caractère
uniquement quand 'ai' est activé (mais cela n'est visible qu'après avoir
pressé <Echap>). Vim efface toujours un caractère (et le resultat est
immédiatement visible).

Ajout de la commande ":wnext". Identique à ":write" suivi de ":next".

La commande ":w!" enregistre toujours le fichier, même lorsqu'il est protégé
en écriture. Sous Vi, il est nécessaire de faire ":!chmod +w %" puis
":set noro".

Quand 'tildeop' est activé, "~" est un opérateur (et doit être suivi d'une
commande de mouvement).

Avec la commande "J" (fusionner les lignes), il vous est possible de
réinitialiser l'option 'joinspaces' ('js') pour n'avoir qu'un seul espace
après un point (Vi en insère deux).

"cw" permet de changer un espace blanc formé de plusieurs caractères (Vi est
déroutant : "cw" ne change qu'un seul espace, alors que "dw" les coupe tous).

"o" et "O" acceptent un quantificateur pour répéter l'insertion (Vi efface une
partie de l'écran).

Les noms de fichiers précédemment utilisés sont mémorisés dans la liste des
tampons. ":files" permet d'afficher cette liste.
   "#<N>" est remplacé par le N-ième nom de fichier alternatif dans la liste.
   "#<" est remplacé par le nom courant du fichier sans son extension. XXX "%"?

Les drapeaux à la suite des commandes Ex ne sont pas supportés (et il n'est
pas prévu qu'ils le soient).

Sur les systèmes non-Unix, la commande ":cd" affiche le répertoire courant au
lieu d'aller dans le répertoire personnel de l'utilisateur (comme il n'y en a
pas). ":pwd" affiche le répertoire courant sur tous les systèmes.

Après une commande ":cd", les noms de fichiers (ouverts, c'est-à-dire dans
liste des arguments) continuent de pointer vers les mêmes fichiers sur le
disque. Avec Vi, ":cd" n'est pas autorisé dans un fichier modifié ; dans les
autres cas, la signification des noms de fichiers n'est plus la même.

La commande ":source!" lit des commandes Vi depuis un fichier.

La commande ":mkexrc" écrit les options actuellement modifiées et les mappages
dans un fichier ".exrc". ":mkvimrc" les écrit dans un fichier ".vimrc".

Pas de contrôle de « récursion finale » dans les mappages. Cela permet
d'écrire ce genre de choses : ":map! zorg ^]zorg".

Quand un mappage commence par un nombre, Vi perd le quantificateur qui le
précède (par exemple, lors de l'utilisation du mappage ":map g 4G", la
commande "7g" va à la ligne 4). Ce comportement est considéré comme un bogue
de Vi. Vim concatène les quantificateurs (dans l'exemple, cela donne "74G"),
comme on peut s'y attendre.

La commande ":put!" insère le contenu d'un registre au-dessus de la ligne
courante.

Les commandes "p" et "P" de Vi ne peuvent pas être répétées avec "." quand le
texte collé fait moins d'une ligne. Avec Vim, elles peuvent toujours être
répétées.

La commande ":noremap" permet de saisir un mappage qui ne sera pas remappé.
C'est pratique pour échanger la signification de deux touches. ":cmap",
":cunmap" et ":cnoremap" permettent l'utilisation de mappages limités à
l'édition de la ligne de commande. ":imap", ":iunmap" et ":inoremap"
permettent l'utilisation des mappages limités au mode Insertion. Des commandes
similaires existent pour les abréviations : ":noreabbrev", ":iabbrev",
":cabbrev", ":iunabbrev", ":cunabbrev", ":inoreabbrev", ":cnoreabbrev".

Avec Vi, la commande ":map zorg lub" supprime le mappage précédent ":map plop
zorg". Ce comportement est considéré comme un bogue, et n'est donc pas inclus
dans Vim. Par contre, la commande ":unmap! lub" supprime bien ":map! zorg lub"
(comme dans Vi), car il serait très difficile de supprimer des mappages sans
cela.

Le registre ':' contient le dernière ligne de commande.
Le registre '%' contient le nom du fichier courant.
Le registre '.' contient le dernier texte inséré.

La commande ":dis" affiche le contenu des registres à coller.

Les commandes CTRL-O et CTRL-I permettent de sauter aux positions
précédentes/suivantes. Ce sont les mêmes positions que celles utilisées par la
commande '', mais elles peuvent être situées dans d'autres fichiers. La
commande ":jumps" affiche les positions précédentes.

Quand l'option 'shiftround' est activée, l'indentation est basée sur un
multiple de 'shiftwidth' avec les commandes "<" et ">".

L'option 'scrolljump' permet de fixer le nombre minimal de lignes à faire
défiler quand le curseur sort de l'écran. Vous pouvez l'utiliser quand le
défilement est lent.

L'option 'scrolloff' permet de fixer le nombre minimal de lignes à conserver
au-dessus et en dessous du curseur. Cela vous donne le contexte de
l'emplacement où vous éditez. Quand l'option est fixée à une très grande
valeur, la ligne du curseur reste en permanence au milieu de la fenêtre.

Les marques majuscules permettent de sauter entre différents fichiers. La
commande ":marks" donne la liste de toutes les marques actuellement
positionnées. Les commandes "']" et "`]" amènent à la fin du dernier texte
affecté par un opérateur ou collé ; "'[" et "`[" amènent au début.

L'option 'shelltype' permet de déterminer le type de shell utilisé sur Amiga.

L'option 'highlight' permet de définir le mode de surbrillance à utiliser en
diverses occasions.

Les commandes CTRL-A (ajouter) et CTRL-X (soustraire) sont nouvelles. Le
quantificateur de ces commandes (1 par défaut) est ajouté/soustrait au nombre
situé sous ou après le curseur. Ce nombre peut être décimal, octal (commençant
par un '0') ou hexadécimal (commençant par "0x"). Très utile dans les
mappages.

Avec la commande ":set", le préfixe "inv" permet d'inverser les options
booléennes.

Dans Vim comme dans Vi, vous pouvez créer des coupures de ligne avec la
commande ":substitute" en utilisant CTRL-M. Avec Vi, vous ne pouvez pas
insérer un vrai CTRL-M dans le texte. Avec Vim, vous pouvez en insérer un en
le faisant précéder de CTRL-V.


EN MODE INSERTION

Si l'option 'revins' est activée, l'insertion a lieu à rebours. Cela permet
notamment la saisie de l'hébreu. Lors de l'insertion de caractères latins, le
curseur ne se déplace pas et le texte est décalé vers la droite au fur et à
mesure. <RetArr>, CTRL-W et CTRL-U fonctionneront également dans la direction
opposée. CTRL-B active/désactive l'option 'revins'. En mode Remplacement,
'revins' est sans effet. Nécessite d'être activé à la compilation.

La touche <RetArr> permet de supprimer les indentations automatiques de la
même manière que CTRL-D.

Vous pouvez utiliser <RetArr>, CTRL-U et CTRL-W sur les coupures de ligne si
l'option 'backspace' inclut "eol". Vous pouvez utiliser <RetArr> avant la
position de début d'une insertion si l'option 'backspace' inclut "start".

Quand l'option 'paste' est activée, plusieurs options sont réinitialisées, les
abréviations et les mappages du mode Insertion sont désactivés. Cela permet de
coller du texte dans les systèmes de fenêtrage sans aboutir à des résultats
inattendus. Quand l'option 'paste' est réinitialisée, les anciennes valeurs
des options sont rétablies.

CTRL-T/CTRL-D augmente/diminue toujours le renfoncement de la ligne courante,
quelle que soit la colonne où se trouve le curseur.

CTRL-@ (insérer le texte précédemment inséré) fonctionne en permanence (avec
Vi, cela ne fonctionne que si la commande est saisie comme premier caractère).

CTRL-A fonctionne comme CTRL-@, mais sans quitter le mode Insertion.

"CTRL-R {0-9a-z...}" permet d'insérer le contenu d'un registre.

Quand l'option 'smartindent' est activée, l'indentation automatique des
programmes C est meilleure. Et encore plus avec 'cindent'.

CTRL-Y et CTRL-E permettent de copier les caractères des lignes au-dessus/en
dessous du curseur.

Après CTRL-V, vous pouvez saisir un nombre décimal à trois chiffres. L'octet
correspondant à cette valeur est inséré dans le texte comme un seul caractère.
Utile pour les caractères internationaux qui ne sont pas présents sur votre
clavier.

Quand l'option 'expandtab' est activée, un <Tab> est remplacé par le nombre
d'espaces approprié.

La fenêtre représente toujours le contenu du tampon (ce n'est pas toujours le
cas avec Vi, notamment lors des changements dans le texte).

Si DIGRAPHS est défini à la compilation de Vim, les digrammes sont supportés.
Un jeu de digrammes standard est inclus. La commande ":digraph" permet de les
afficher. Vous pouvez en ajouter avec ":digraph {car1}{car2} {nombre}". La
saisie d'un digramme se fait avec "CTRL-K {car1} {car2}" ou bien 
"{car1} <RetArr> {car2}" (uniquement si l'option 'digraph' est activée).

Lors de la répétition d'une insertion, par exemple "10atest <Echap>", Vi ne
prend en compte 'wrapmargin' que pour la première insertion. Vim le fait pour
chacune d'elles.

Un quantificateur devant les commandes "i" ou "a" est utilisé pour tout le
texte. Vi ne l'utilise que pour une seule ligne. "3iabc<NL>def<Esc>"
insérerait "abcabcabc<NL>def" dans Vi, mais insère
"abc<NL>defabc<NL>defabc<NL>def" dans Vim.


EN MODE LIGNE-DE-COMMANDE

<Echap> termine l'édition de la ligne de commande sans l'exécuter. Dans Vi, la
commande était exécutée, ce qui n' était pas ce à quoi la plupart de gens
s'attendaient (taper <Echap> devrait toujours vous ramener en mode Commande).
Pour éviter des problèmes avec certains mappages obscurs, un <Esc> dans un
mappage exécutera la commande. Si vous voulez que <Echap> exécute votre
commande comme dans Vi, vous pouvez utiliser : ":cmap ^V<Esc> ^V<CR>"


GÉNÉRAL

L'option 'ttimeout' est similaire à 'timeout', mais uniquement pour le curseur
et les touches de fonction, pas pour les caractères ordinaires mappés.
L'option 'timeoutlen' précise le nombre de millisecondes de délai. Si
l'option 'esckeys' est désactivée, le curseur et les touches de fonction
commençant par <Esc> ne sont pas reconnues en mode Insertion.

Il existe une option pour chaque chaîne du terminal. Elles peuvent être
utilisées quand termcap n'est pas supporté ou pour changer des chaînes
individuellement.

L'option 'fileformat' permet de sélectionner la forme des <EOL> : "dos"
<CR><NL>, "unix" <NL> ou "mac" <CR>.
   Quand l'option 'fileformats' n'est pas vide, Vim essaie de détecter
automatiquement la forme des <EOL>. L'option 'fileformat' est fixée en
conséquence.

Sur les systèmes ne disposant pas de contrôle des tâches (les Unix les plus
anciens et les systèmes non-Unix), les commandes CTRL-Z, ":stop" et ":suspend"
lancent un nouveau shell.

Sur Amiga, si Vim est démarré sans fenêtre interactive pour sa sortie
standard, une fenêtre est ouverte (et ":sh" fonctionne toujours). Vous pouvez
spécifier le périphérique à utiliser pour l'édition avec l'argument "-d", par
exemple "-d con:20/20/600/150".

Les options 'columns' et 'lines' permettent d'obtenir ou de fixer la largeur
et le hauteur de l'affichage.

Des valeurs d'options peuvent être lues sur les premières et dernières lignes
du fichier. L'option 'modelines' précise le nombre de lignes à examiner (5 par
défaut). NOTE : Il y a une différence avec les versions de Vi qui autorisent
l'exécution de n'importe quelle commande dans une ligne de mode (un grave
problème de sécurité). |trojan-horse|

Quand l'option 'insertmode' est activée (par exemple dans le fichier ".exrc"),
Vim démarre en mode Insertion. Et il y retourne quand vous pressez <Echap>.

Les données d'annulation sont conservées en mémoire. La mémoire disponible
limite la taille et le nombre de changements pouvant être annulés. Cela peut
poser problème sur MS-DOS, mais très rarement sur Amiga et sans doute jamais
sur Unix et Win32.

Si l'option 'backup' ou 'writebackup' est activée, un fichier de sauvegarde
est créé (.bak) avant d'écraser un fichier. Si l'option 'backup' est activée,
le fichier de sauvegarde est conservé.

Vim crée un fichier se terminant par ".swp" pour y enregistrer des parties du
fichier qui ont été modifiées ou qui ne tiennent pas en mémoire. Ce fichier
permet le recouvrement après une session d'édition anormalement terminée, via
la commande `vim -r fichier`. L'utilisation de ce fichier d'échange peut être
désactivée en fixant 'updatecount' à 0 ou en démarrant Vim avec l'option "-n".
Vous pouvez utiliser l'option 'directory' pour placer le fichier d'échange
autre part.

Vim est capable de fonctionner correctement sur les systèmes de fichiers avec
des noms de fichiers courts (8.3), y compris les systèmes de fichiers messydos
ou crossdos sur Amiga, ou n'importe quel système de fichiers à noms courts
monté sous Unix. Voir |'shortname'|.

Les messages d'erreurs sont affichés pendant au moins une seconde (Vi écrase
les messages d'erreurs).

Lorsque Vim affiche l'invite Appuyez-sur-Entrée |hit-enter|, vous pouvez
appuyer sur n'importe quelle touche. Tous les caractères exceptés <CR>, <NL>
et <Espace> seront interprétés comme (le début d') une commande. (Vi ne
supporte que les commandes commençant par ':').

Le contenu des registres numérotés et du registre sans nom est mémorisé lors
d'un changement de fichiers.

Le message "--Le tampon est vide--" est un message normal plutôt qu'un message
d'erreur, car cela peut provoquer l'abandon d'un mappage. 

Le périphérique "AUX:" de l'Amiga est supporté.

==============================================================================
6. Arguments de la ligne de commande			*cmdline-arguments*

Les différentes versions de Vi possèdent différents arguments de ligne de
commande. Cela peut être déroutant. Pour vous aider, cette section donne une
vue d'ensemble de ces différences.

Cinq variantes de Vi sont considérées ici :
	Elvis	Elvis version 2.1b
	Nvi	Nvi version 1.79
	Posix	Posix 1003.2
	Vi	Vi version 3.7 (pour Sun 4.1.x)
	Vile	Vile version 7.4 (incomplète)
	Vim	Vim version 5.2

Seul Vim est capable d'accepter des options de ligne de commande entre et
après les noms de fichiers.

+{commande}	Elvis, Nvi, Posix, Vi, Vim : comme "-c {commande}".

-		Nvi, Posix, Vi : lance Ex en mode non-interactif.
		Vim : lit le fichier sur l'entrée standard (utilisez "-s" pour
		   le mode non-interactif).

--		Vim : fin des options, seuls des noms de fichiers suivent.

--help		Vim : affiche un message d'aide et quitte.

--literal	Vim : utilise les noms de fichiers littéralement, pas
		   d'expansion des jokers.

--noplugin[s]	Vim : ne charge pas les greffons.

--remote	Vim : édite les fichiers dans un autre serveur Vim.

--remote-wait	Vim : édite les fichiers dans un autre serveur Vim et attend
		   la fin de l'édition.

--remote-expr {expr}
		Vim : évalue {expr} dans un autre serveur Vim.

--remote-send {sequence}
		Vim : envoie {sequence} clavier à un serveur Vim et quitte.

--serverlist	Vim : affiche une liste des serveurs Vim et quitte.

--servername {name}
		Vim : spécifie le nom du serveur Vim.

--socketid {ID} Vim : socket de la fenêtre GTK+ dans laquelle exécuter Vim.

--version	Vim : affiche le message de version et quitte.

-?		Vile : affiche un court mode d'emploi et quitte.

-a		Elvis : charge chaque fichier spécifié dans une fenêtre
		   (utilisez "-o" pour Vim).

-A		Vim : démarre en mode arabe (si compilé avec le support de
		   l'arabe).

-b {taillebloc}	Elvis : utilise {taillebloc} pour le fichier de session.
-b		Vim : active le mode binaire (option 'binary').

-C		Vim : mode compatible.

-c {commande}	Elvis, Nvi, Posix, Vim : exécute {commande} comme une commande
		   Ex après le chargement du tampon à éditer. Vim autorise
		   jusqu'à 10 arguments "-c".

-d {periph}	Vim : utilise {periph} pour les E/S (Amiga uniquement).
		   {uniquement si compilé sans la fonctionnalité |+diff|}
-d		Vim : démarre avec 'diff' activé. |vimdiff|

-dev {periph}	Vim : utilise {periph} pour les E/S (Amiga uniquement).

-D		Vim : mode débogage.

-e		Elvis, Nvi, Vim : démarre en mode Ex, comme si l'exécutable
		   était nommé "ex".

-E		Vim : démarre en mode Ex amélioré |gQ|, comme avec `exim`.

-f		Vim : lance l'IHM graphique au premier plan (Amiga : n'ouvre
		   pas de nouvelle fenêtre).
-f {session}	Elvis : utilise {session} comme fichier de session.

-F		Vim : démarre en mode farsi (si compilé avec avec le support
		   du farsi).
		Nvi : démarrage rapide, ne lit pas entièrement le fichier au
		   début de l'édition.

-G {IHMg}	Elvis : utilise l'{IHMg} comme interface utilisateur.

-g		Vim : lance l'IHM graphique.
-g N		Vile : démarre l'édition à la ligne N.

-h		Vim : affiche le message d'aide.
		Vile : édite le fichier d'aide.

-H		Vim : démarre en mode hébreu (si compilé avec le support de
		   l'hébreu).

-i		Elvis : démarre avec chaque fenêtre en mode Insertion.
-i {viminfo}	Vim : utilise {viminfo} comme fichier viminfo.

-L		Vim : comme "-r" (existe aussi dans certaines versions de Vi).

-l		Nvi, Vi, Vim : active les options 'lisp' et 'showmatch'.

-m		Vim : écriture des modifications non autorisée, réinitialise
		   l'option 'write'.

-M		Vim : modifications non autorisées, réinitialise les options
		   'modifiable' et 'write'.

-N		Vim : mode non compatible.

-n		Vim : ne pas utiliser de fichier d'échange.

-O[N]		Vim : comme "-o", mais en utilisant des partages verticaux.

-o[N]		Vim : ouvre [N] fenêtres, ou bien une pour chaque fichier.

-q {nom}	Vim : utilise {nom} comme fichier d'erreur pour le mode
		   mise-au-point.
-q{nom}		Vim : Idem.

-R		Elvis, Nvi, Posix, Vile, Vim : active l'option 'readonly'.

-r		Elvis, Nvi, Posix, Vi, Vim : mode recouvrement.

-S		Nvi : active l'option 'secure'.
-S {script}	Vim : source le {script} après le démarrage.

-s		Nvi, Posix, Vim : comme "-" (mode silencieux) si en mode Ex.
		Elvis : active l'option 'safer'.
-s {script-E}	Vim : source le fichier {script-E} sauf si lancé en mode Ex.
		   si pas en mode Ex.
-s {motif}	Vile : recherche {motif}.

-t {marqueur}	Elvis, Nvi, Posix, Vi, Vim : édite le fichier contenant
		   {marqueur}.
-t{marqueur}	Vim : Idem.

-T {term}	Vim : fixe le nom du terminal à {term}.

-u {vimrc}	Vim : lit les initialisations dans le fichier {vimrc}.

-U {gvimrc}	Vim : lit les initialisations de l'IHM graphique dans le
		   fichier {gvimrc}.

-v		Nvi, Posix, Vi, Vim : démarre en mode Normal (en mode 
		   « Visuel », dans la terminologie Vi).
		Vile : mode Vue, modifications impossibles.

-V		Elvis, Vim : mode verbeux.
-V{nb}		Vim : mode verbeux avec le niveau de verbosité spécifié.

-w {taille}	Elvis, Posix, Nvi, Vi, Vim : fixe 'window' à {taille}.
-w{taille}	Nvi, Vi : comme "-w {taille}".
-w {nom}	Vim : écrit dans le fichier de script {nom} (doit débuter par
		   un caractère non numérique).

-W {nom}	Vim : ajoute à la fin du fichier de script {nom}.

-x		Vi, Vim : demande une clé de chiffrement. Voir |encryption|.

-X		Vim : ne pas se connecter au serveur X.

-y		Vim : démarre en mode facile, comme avec |evim|.

-Z		Vim : mode restreint.

@{fichiercmd}	Vile : utilise {fichiercmd} comme fichier de démarrage.

 vim:tw=78:ts=8:ft=help:norl: