  HOWTO de l'diteur ViM couleur (Vi aMlior, avec coloration
  syntaxique)
  Al Dev (Alavoor Vasudevan) alavoor@yahoo.com;
  Version franaise par Arnaud Launay, asl@launay.org
  v14.0, 16 Aot 2000

  Ce document est un guide pour configurer trs rapidement l'diteur
  couleur ViM sur les systmes Linux ou Unix. Les informations
  prsentes ici augmenteront la productivit du programmeur puisque
  l'diteur ViM supporte la coloration syntaxique et les fontes grasses
  qui augmentent la  lisibilit  du code. La productivit d'un pro
  grammeur est accrue de 2  3 fois avec un diteur couleur comme ViM.
  Les informations de ce document s'appliquent  tous les systmes
  d'exploitation sous lesquels Vim fonctionne, c'est--dire Windows
  95/NT, Apple Mac, et toutes les versions d'Unix telles que Linux,
  FreeBSD, Solaris, HPUX, AIX, SCO, Ultrix, Sinix, BSD, SCO, etc. (ce
  qui revient  dire,  peu prs tous les OS de la plante !).
  ______________________________________________________________________

  Table des matires














































  1. Introduction

     1.1 Avant d'installer
     1.2 Installer ViM sous RedHat Linux
     1.3 Installer ViM sous GNU Debian Linux
     1.4 Installer ViM sous Unix
     1.5 Installer ViM sous Microsoft Windows 95/NT
     1.6 Installer ViM sous VMS
        1.6.1 Charger les fichiers
        1.6.2 Compiler
        1.6.3 Dploiement
        1.6.4 Usage pratique
        1.6.5 Questions sur le mode GUI
     1.7 Installer ViM sous OS/2
     1.8 Installer ViM sur Apple Macintosh

  2. Configurez les fichiers d'initialisation de ViM

     2.1 Paramtres du Xdefaults
     2.2 Fichier vimrc d'exemple
     2.3 Fichier gvimrc d'exemple

  3. Fichier d'initialisation de la coloration syntaxique

     3.1 Mthode automatique
     3.2 Mthode manuelle

  4. Usage de ViM

  5. Compagnons Vi

     5.1 Ctags pour ESQL
     5.2 Ctags pour les programmes JavaScript, les scripts shell Korn, Bourne
     5.3 Dboguer avec gdb

  6. Aide de ViM en ligne

  7. Pages web de ViM et liens ViM

  8. Tutoriel ViM

     8.1 Tutoriels ViM sous la main
     8.2 Tutoriels Vi sur Internet

  9. Tutoriel Vi

     9.1 Commandes du mouvement du curseur
     9.2 Compteurs de rptitions
     9.3 Effacer du texte
     9.4 Changer le texte
     9.5 Emmener (copier) du texte
     9.6 Filtrer le texte
     9.7 Marquer des lignes et des caractres
     9.8 Nommer les tampons
     9.9 Substitutions
     9.10 Diverses  commandes double point 
     9.11 Utiliser les options
     9.12 Cartographie des touches
     9.13 diter plusieurs fichiers
     9.14 Remarques finales

  10. Carte de rfrence ViM

     10.1 tats Vi
     10.2 Commandes Shell
     10.3 Activer les options
     10.4 Notations utilises
     10.5 Interrompre, annuler
     10.6 Manipulation de fichier
     10.7 Mouvement
     10.8 Positionnement en ligne
     10.9 Positionnement des caractres
     10.10 Mots, phrases, paragraphes
     10.11 Marquage et retour
     10.12 Corrections au cours de l'insertion
     10.13 Ajuster l'cran
     10.14 Effacer
     10.15 Insrer, changer
     10.16 Copier et coller
     10.17 Oprateurs (utiliser des doubles pour agir sur les lignes compltes)
     10.18 Chercher et remplacer
     10.19 Gnral
     10.20 Commandes d'dition de ligne
     10.21 Autres commandes

  11. URLs connexes

  12. Autres formats de ce document

  13. Notice de Copyright



  ______________________________________________________________________

  11..  IInnttrroodduuccttiioonn

  L'diteur ViM signifie  Vi iMproved  (Vi amlior). Vi est l'diteur
  le plus populaire et le plus puissant du monde Unix. Son nom vient de
  l'abbrviation diteur VViisuel. Un diteur visuel comme Vi tait un
  grand progrs par rapport aux diteurs en ligne comme 'ed' (ou 'ex').
  Les diteurs

  Un bon diteur augmentera la productivit du programmeur. Vim supporte
  la coloration syntaxique du code ainsi que diffrentes fontes,
  normales, grasses ou italiques. Les diteurs couleurs comme ViM
  augmentent la productivit du programmeur de 2  3 fois ! Les
  programmeurs peuvent lire le code beaucoup plus rapidement si la
  syntaxe du code est colores et mise en vidence.


  11..11..  AAvvaanntt dd''iinnssttaalllleerr

  Avant d'installer ViM, rfrez vous aux notes relevant de l'OS et aux
  informations sur la compilation et l'usage de ViM sur -

    Allez ici et regardez les fichiers os_*.txt
     <http://cvs.vim.org/cgi-bin/cvsweb/vim/runtime/doc>

  Si vous n'avez pas le paquetage ViM (RPM, DEB, tar, zip) alors chargez
  le code source par ftp sur le site officiel de ViM

    La page maison de ViM est sur  <http://www.vim.org>

    Le site miroir US est sur  <http://www.us.vim.org>

    Le site FTP est sur  <ftp://ftp.vim.org/pub/vim>

    Ou utilisez un des miroirs sur  <ftp://ftp.vim.org/pub/vim/MIRRORS>



  11..22..  IInnssttaalllleerr VViiMM ssoouuss RReeddHHaatt LLiinnuuxx

  Pour utiliser ViM, installez les paquetages rpm suivants sous RedHat -

  ______________________________________________________________________
          rpm -i vim*.rpm
  Ou comme ceci -
          rpm -i vim-enhanced*.rpm
          rpm -i vim-X11*.rpm
          rpm -i vim-common*.rpm
          rpm -i vim-minimal*.rpm
  ______________________________________________________________________


  Vous pouvez voir la liste des fichiers ViM que rpm a install par

  ______________________________________________________________________
          rpm -qa | grep ^vim | xargs rpm -ql | less
  ou
          rpm -qa | grep ^vim | awk '{print "rpm -ql " $1 }' | /bin/sh | less
  ______________________________________________________________________



  Et regardez la sortie en utilisant j, k, CTRL+f, CTRL+D, CTRL+B,
  CTRL+U ou les touches flches, page up/down. Voyez aussi 'man less'.


  Notez que les paquetages RPM pour RedHat Linux utilisent une interface
  Motif.  Si vous avez install les librairies GTK sur votre systme,
  vous pouvez envisager de recompiler ViM  partir du source code afin
  de bnficier d'une interface graphique propre. Pour les informations
  sur la compilation du code de ViM, voyez  installer ViM sur Unix 
  plus bas.


  11..33..  IInnssttaalllleerr VViiMM ssoouuss GGNNUU DDeebbiiaann LLiinnuuxx

  Pour installer ViM sous Debian Linux (GNU Linux), identifiez vous en
  tant que superutilisateur et lorsque vous tes connect  Internet
  tapez -

  ______________________________________________________________________
  apt-get install vim vim-rt
  ______________________________________________________________________


  Cela chargera la dernire version de ViM, l'installera, le configur
  era, et supprimera les fichiers .deb chargs. Le premier paquetage
  list est ViM, l'diteur standard, compil avec support pour X11, vim-
  rt est le vim-runtime, c'est--dire les fichiers de syntaxe et d'aide.


  11..44..  IInnssttaalllleerr VViiMM ssoouuss UUnniixx

  Pour les autres versions d'Unix comme Solaris, HPUX, AIX, Sinix, SCO,
  rcuprez les fichiers sources (voyez ``'')

  ______________________________________________________________________
          zcat vim.tar.gz | tar -xvf -
          cd vim-5.6/src
          ./configure --enable-gui=motif
          make
          make install
  ______________________________________________________________________

  11..55..  IInnssttaalllleerr VViiMM ssoouuss MMiiccrroossoofftt WWiinnddoowwss 9955//NNTT

  Pour Windows 95/NT, rcuprez les fichiers zip et installez-les en
  cliquant sur setup. Vous devez charger DEUX fichiers zip -

    Fichier contenant le runtime vviimm**rrtt..zziipp

    Fichier de commande ViM vviimm**5566..zziipp dont la version est la 5.6

  Rcuprez ces deux fichiers (voir ``'')

  Dcompactez les fichiers zip en utilisant Winzip
  <http://www.winzip.com>. Les deux fichiers zip (vim*rt.zip et
  vim*56.zip) doivent tre dcompresss dans le mme rpertoire, disons
  cc::\\vviimm.

  Pour Windows 95/98, ajoutez la variable d'environnement VIM dans
  autoexec.bat en ajoutant cette ligne -

  ______________________________________________________________________
  set VIM=c:\vim\vim56
  ______________________________________________________________________



  Pour Windows NT, ajoutez la variable d'environnement dans le dialogue
  CCoonnttrrooll PPaanneell || SSyysstteemm || EEnnvviirroonnmmeenntt || SSyysstteemm PPrrooppeerrttiieess :

  ______________________________________________________________________
  VIM=c:\vim\vim56
  ______________________________________________________________________



  La variable VIM doit pointer l o vous avez install le rpertoire
  vim56.  Vous pouvez aussi ajouter l'emplacement de gvim.exe  votre
  PATH.

  Il est probable que vous deviez vous dconnecter et vous ridentifier
  pour avoir les bonnes variables.  l'invite MSDOS tapez -

  ______________________________________________________________________
          set vim
  ______________________________________________________________________



  Et vous devriez voir - VIM=c:\vim\vim56

  Crez un raccourci sur votre bureau en copiant/collant de
  c:\vim\vim56\gvim.exe. Copiez le fichier gvimrc_example vers
  $VIM\_gvimrc.  Dans mon cas, il s'agit de c:\vim\vim56\_gvimrc.


  11..66..  IInnssttaalllleerr VViiMM ssoouuss VVMMSS


  11..66..11..  CChhaarrggeerr lleess ffiicchhiieerrss

  Vous aurez besoin des archives Unix et extra pour construire vim.exe
  pour VMS.  Pour utiliser toute la puissance de ViM vous aurez
  galement besoin des fichiers runtime. Prenez ces fichiers (voir
  ``'').

  Vous pouvez charger des excutables prcompils sur
  <http://www.polarfox.com/vim>.
  Les auteurs de ViM VMS sont -

    zoltan.arpadffy@essnet.se

    arpadffy@altavista.net

    cec@gryphon.gsfc.nasa.gov

    BNHunsaker@chq.byu.edu

    sandor.kopanyi@altavista.net


  11..66..22..  CCoommppiilleerr

  Dcompactez les archives Unix et Extra dans un mme rpertoire. Dans
  le sous-rpertoire <.SRC> vous devriez trouver le fichier make
  OS_VMS.MMS. En ditant ce fichier vous pourrez choisir les versions
  des caractres, des interfaces et du dbogage. Il y a galement des
  options additionnelles concernant les supports pour Perl, Python et
  Tcl.

  Vous aurez besoin soit de l'utilitaire DECSET mms ou du clone
  disponible gratuitement appell mmk (VMS n'a pas d'utilitaire make en
  distribution standard). Vous pouvez rcuprer mmk sur
  http://www.openvms.digital.com/freeware/MMK/

  Si vous avez MMS sur votre systme, la commande

  >       mms /descrip=os_vms.mms

  construira votre version personnalise de ViM.  La commande
  quivalente pour mmk est :

  >       mmk /descrip=os_vms.mms


  11..66..33..  DDppllooiieemmeenntt

  ViM utilise une structure de rpertoires spciale pour les fichiers de
  documentation et d'utilisation :


  ______________________________________________________________________
     vim (ou autre)
      |- tmp
      |- vim55
      |----- doc
      |----- syntax
      |- vim56
      |----- doc
      |----- syntax
      vimrc    (fichiers systme rc)
      gvimrc
  ______________________________________________________________________



  Utilisez :

  ______________________________________________________________________
  >       define/nolog device:[leading-path-here.vim]       vim
  >       define/nolog device:[leading-path-here.vim.vim56] vimruntime
  >       define/nolog device:[leading-path-here.tmp]       tmp
  ______________________________________________________________________

  pour que vim.exe puisse trouver ses fichiers de documents, ses types
  de fichiers et de syntaxe, et pour spcifier un rpertoire o les
  fichiers temporaires seront placs. Copiez le sous-rpertoire  run
  time  de la distribution vim dans vimruntime.

  Note : les variables $VIMRUNTIME et $TMP sont optionnelles. Lisez en
  plus sur :help runtime.


  11..66..44..  UUssaaggee pprraattiiqquuee

  Habituellement vous devrez faire tourner une seule version de ViM sur
  votre systme, il est donc suffisant de ddier un seul rpertoire 
  ViM.  Copiez toute la structure des rpertoires de runtime dans la
  position de dploiement. Ajoutez les lignes suivantes  votre
  LOGIN.COM (dans le rpertoire SYS$LOGIN). Dfinissez la variable $VIM
  en tant que :


  ______________________________________________________________________
  >       $ define VIM device: <path>
  ______________________________________________________________________



  Configurez quelques symboles :


  ______________________________________________________________________
  >       $ ! vi lance ViM en mode caractre
  >       $ vi*m  :== mcr device:<path>VIM.EXE

  >       $ !gvi lance ViM en mode GUI
  >       $ gv*im :== spawn/nowait mcr device:<path>VIM.EXE -g
  ______________________________________________________________________



  Crez les fichiers .vimrc et .gvimrc dans votre rpertoire personnel
  (SYS$LOGIN).

  La mthode la plus simple est de renommer les fichiers d'exemples.
  Vous pouvez laisser le fichier de menu (MENU.VIM) et les fichiers
  vimrc et gvimrc dans le rpertoire original $VIM. Ce sera la
  configuration par dfaut pour tous les utilisateurs, mais ceux-ci
  pourront apporter leurs propres modifications  la configuration via
  les fichiers .vimrc et .gvimrc de leur rpertoire personnel.  Ceci
  devrait marcher sans problme.

  Note : Rappellez-vous, les fichiers systmes rc (dfaut pour tous les
  utilisateurs) n'ont pas de  .  final. Ainsi, les fichiers systmes
  rc sont :


  ______________________________________________________________________
  >       VIM$:vimrc
  >       VIM$:gvimrc
  >       VIM$:menu.vim
  ______________________________________________________________________


  et les fichiers utilisateurs personnaliss sont :




  ______________________________________________________________________
  >       sys$login:.vimrc
  >       sys$login:.gvimrc
  ______________________________________________________________________



  Vous pouvez vrifier que tout fonctionne et est  la bonne place avec
  la commande :version.


  ______________________________________________________________________
  Exemple de LOGIN.COM :

  >       $ define/nolog VIM RF10:[UTIL.VIM]
  >       $ vi*m  :== mcr VIM:VIM.EXE
  >       $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
  >       $ set disp/create/node=192.168.5.223/trans=tcpip
  ______________________________________________________________________



  Note : Cette configuration devrait tre suffisante si vous travaillez
  sur un serveur seul ou dans un environnement clusteris, mais si vous
  dsirez utiliser ViM en tant qu'diteur internoeuds, il suffit de
  dfinir le  chemin  complet :


  ______________________________________________________________________
  >       $ define VIM "<server_name>[""user password""]::device:<path>"
  >       $ vi*m :== "mcr VIM:VIM.EXE"
  ______________________________________________________________________



  par exemple :


  ______________________________________________________________________
  >       $ define VIM "PLUTO::RF10:[UTIL.VIM]"
  >       $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! si un pass est ncessaire
  ______________________________________________________________________


  Vous pouvez aussi utiliser la variable $VIMRUNTIME pour pointer sur la
  bonne version de ViM si vous avez plusieurs versions installes en
  mme temps. Si $VIMRUNTIME n'est pas dfini ViM prendra la valeur de
  la variable $VIM. Vous pourrez trouver plus d'informations sur la
  variable $VIMRUNTIME en tapant :help runtime en commande ViM.


  11..66..55..  QQuueessttiioonnss ssuurr llee mmooddee GGUUII

  VMS n'est pas un environnement X window natif, vous ne pouvez donc pas
  lancer ViM en mode GUI  juste comme a . Mais ce n'est pas trop
  compliqu d'obtenir un ViM fonctionnel.










  ______________________________________________________________________
  1) Si vous travaillez sur la console X VMS.
     Lancez ViM avec la commande :

  >       $ mc device:<path>VIM.EXE -g

  ou tapez :gui en commande  l'invite ViM. Pour plus d'infos tapez :help gui

  2) Si vous travaillez sur un autre environnement X window comme Unix ou une
  console VMS X distante. Configurez votre affichage sur cet hte avec :

  >       $ set disp/create/node=<addresse IP>/trans=<nom-transport>

  et lancez ViM comme au point 1. Vous pourrez trouver plus d'aide dans la
  documentation VMS ou tapez: help set disp  l'invite VMS.
     Exemples :

  >       $ set disp/create/node=192.168.5.159             ! transport par dfaut DECNet
  >       $ set disp/create/node=192.168.5.159/trans=tcpip ! rseau TCP/IP
  >       $ set disp/create/node=192.168.5.159/trans=local ! affichage sur le mme noeud
  ______________________________________________________________________



  Note : Vous ne devez en dfinir qu'un. Pour plus d'infos tapez $help
  set disp  l'invite VMS.


  11..77..  IInnssttaalllleerr VViiMM ssoouuss OOSS//22

  Lisez les notes de version de ViM sur OS/2, voyez ``''.

  Pour le moment il n'y a pas de version PM native de la version GUI de
  ViM ; la version OS/2 est une application en console. Nanmoins, il y
  a maintenant une version Win32s-compatible GUI, qui devrait tre
  utilisable par les utilisateurs de Warp4 (qui supporte Win32s) dans
  une session Win-OS/2. Les notes de ce fichier se rfrent  la version
  console native.

  Pour utiliser ViM, vous aurez besoin de l'environnement de lancement
  emx (au moins la version 0.9b). Elle est gnralement disponible en
  tant que (demandez le  Archie) :

  ______________________________________________________________________
      emxrt.zip     emx runtime package
  ______________________________________________________________________




  11..88..  IInnssttaalllleerr VViiMM ssuurr AAppppllee MMaacciinnttoosshh

  Lisez les notes de version de ViM sur Mac, voyez ``''.

  L'auteur de ViM sur Mac (de l'ancienne version 3.0) est

  ______________________________________________________________________
  Eric Fischer
  5759 N. Guilford Ave
  Indianapolis IN 46220 USA
  ______________________________________________________________________


  crivez  enf@pobox.com


  Rapport de Bogue Mac.  Lorsque vous avez  rapporter tout changement
  spcifique au Mac, bogue ou option, incluez l'adresse suivante dans le
  champ  To:  ou  Copy To: .  dany.stamant@sympatico.ca

  ViM compile sans ajout avec le projet CodeWarrior en utilisant
  CodeWarrior 9.  Si vous utilisez une version plus rcente (CW Pro)
  vous devrez convertir le projet avant toute chose.  Pour compiler ViM
  pour Macs 68k vous devrez ouvrir la ressource  size  dans ResEdit et
  activer le bouton  High level events aware  pour avoir un
  copier/coller fonctionnel.  Vous devrez augmenter la partition de
  mmoire  au moins 1024 koctets pour viter  ViM de se crasher faute
  de mmoire suffisante.


  22..  CCoonnffiigguurreezz lleess ffiicchhiieerrss dd''iinniittiiaalliissaattiioonn ddee VViiMM

  Pour permettre la coloration syntaxique, vous DEVEZ copier le fichier
  vimrc dans votre rpertoire personnel. Il ajoutera galement le menu 
  Syntax  pour la commande gvim. Vous pouvez cliquer sur le menu Syntax
  et slectionner le langage appropri, comme C++, Perl, Java, SQL,
  ESQL, etc.

  ______________________________________________________________________
  cd $HOME
  cp /usr/doc/vim-common-5.7/gvimrc_example  ~/.gvimrc
  cp /usr/doc/vim-common-5.7/vimrc_example  ~/.vimrc
  ______________________________________________________________________


  Les commentaires du .vimrc commencent avec les apostrophes (").  Vous
  pouvez personnaliser vim en ditant le fichier $HOME/.vimrc et en
  rajoutant les lignes suivantes :

  ______________________________________________________________________
  set guifont=8x13bold
  "set guifont=9x15bold
  "set guifont=7x14bold
  "set guifont=7x13bold
  ______________________________________________________________________


  Il est eexxttrrmmeemmeenntt recommand que vous mettiez les compteurs  tabstop
   et  shiftwidth   4.  Le compteur  tabstop  est le nombre
  d'espaces que TAB ajoutera lorsque vous diterez sous vim. Le compteur
   shiftwidth  est le nombre d'espaces qui dcaleront les lignes en
  tapant les commandes vi ">>" ou "<<". Rfrez vous au tutorial de Vim
  ``'' pour plus de dtails.  Pour mettre en place tabstop et shiftwidth
  :

  ______________________________________________________________________
  set tabstop=4
  set shiftwidth=4
  set nowrapscan
  set ignorecase
  ______________________________________________________________________



  Pour voir la liste des fontes disponibles sous Linux/Unix voyez la
  commande xxllssffoonnttss. Tapez -






  ______________________________________________________________________
          bash$ xlsfonts | less
          bash$ xlsfonts | grep -i bold | grep x
          bash$ man xlsfonts
  ______________________________________________________________________





  22..11..  PPaarraammttrreess dduu XXddeeffaauullttss

  Vous pouvez configurer quelques-unes des proprits de Vim dans le
  fichier Xdefaults.

   AATTTTEENNTTIIOONN :: _N_e _m_e_t_t_e_z _p_a_s VViimm**ggeeoommeettrryy, il coincerait les menu gvim,
  utilisez plutt VViimm..ggeeoommeettrryy  la place.

  ditez votre $HOME/.Xdefaults et ajoutez les lignes suivantes :

  ______________________________________________________________________
  ! GVim super couleurs.
  Vim*useSchemes:         all
  Vim*sgiMode:            true
  Vim*useEnhancedFSB:     true
  Vim.foreground:         Black
  !Vim.background:        lightyellow2
  Vim*background:         white
  ! N'utilisez PAS Vim*geometry, il coincerait les menu gvim,
  ! utilisez Vim.geometry. Un astrisque entre Vim et geometry n'est pas autoris.
  ! Vim.geometry: widthxheight
  Vim.geometry:           88x40
  !Vim*font:              -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15-*5
  Vim*menuBackground: yellow
  Vim*menuForeground: black
  ______________________________________________________________________


  Afin que ces changements soient pris en compte, tapez :

  ______________________________________________________________________
          xrdb -merge $HOME/.Xdefaults
          man xrdb
  ______________________________________________________________________



  Vous pouvez aussi diter votre fichier  /.gvimrc pour changer les
  couleurs de fond :

  ______________________________________________________________________
          gvim $HOME/.gvimrc
  Les meilleures couleurs de fond sont jaune clair ou blanc.
          highlight Normal guibg=lightyellow
  ______________________________________________________________________




  22..22..  FFiicchhiieerr vviimmrrcc dd''eexxeemmppllee

  Vous pouvez changer des paramtres comme la couleur, les fontes
  grasses ou normales dans le fichier gvimrc. Il est eexxttrrmmeemmeenntt
  recommand de configurer la couleur de fond au jaune clair ou blanc.
  Les ergonomistes disent que la meilleure couleur de fond est le jaune
  clair ou le blanc. Vous pouvez changer la variable  guibg  comme
  suit :

  ______________________________________________________________________
          highlight Normal guibg=lightyellow
  ______________________________________________________________________



  Le fichier d'exemple de vim-5.5/runtime/vimrc_example est celui-ci :

























































  " Un exemple de fichier vimrc.
  "
  " Mainteneur :        Bram Moolenaar <Bram@vim.org>
  " Dernires modifications : 9 Sep 1999
  "
  " Pour l'utiliser, copiez le dans
  "     pour Unix et OS/2 :  ~/.vimrc
  "          pour Amiga :  s:.vimrc
  " pour MS-DOS and Win32 :  $VIM\_vimrc

  set nocompatible        " Utilise les dfauts Vim (bien mieux !)
  set bs=2                " autorise l'effacement de tout en mode insertion
  set ai                  " toujours utiliser l'autoindentation
  set backup              " Conserver un fichier de sauvegarde
  set viminfo='20,\"50 " Lit/crit un fichier .viminfo, ne sauve pas plus
                          " de 50 lignes de registres
  set history=50          " Conserve 50 lignes d'historique des commandes
  set ruler               " Montre toujours la position du curseur

  " Pour l'interface Win32: retirez l'option 't' de 'guioptions': pas d'entre menu tearoff
  " let &guioptions = substitute(&guioptions, "t", "", "g")

  " N'utilise pas le mode Ex, utilise Q pour le formatage
  map Q gq

  " p en mode Visuel remplace le texte slectionn par le registre "".
  vnoremap p <Esc>:let current_reg = @"<CR>gvdi<C-R>=current_reg<CR><Esc>

  " Active la coloration syntaxique lorsque le terminal dispose de couleurs
  " Active aussi la coloration de la dernire chane recherche.
  if &t_Co > 2 || has("gui_running")
    syntax on
    set hlsearch
  endif

  " Ne lance la partie suivante que si le support des autocommandes a t inclus
  " lors de la compilation
  if has("autocmd")

   " Dans les fichiers textes, toujours limiter la longueur du texte  78
   " caractres
   autocmd BufRead *.txt set tw=78

   augroup cprog
    " Supprime toutes les autocommandes cprog
    au!

    " Lors du dbut d'dition d'un fichier :
    "   Pour les fichiers C et C++ active le formatage des
    "   commentaires et l'indentation C
    "   Pour les autres fichiers, les dsactive.
    "   Ne pas changer l'ordre, il est important que la ligne
    "   avec * arrive avant.
    autocmd FileType *      set formatoptions=tcql nocindent comments&
    autocmd FileType c,cpp  set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
   augroup END

   augroup gzip
    " Supprime toutes les autocommandes gzip
    au!

    " Active l'dition des fichiers gzipps
    " Active le mode binaire avant de lire le fichier
    autocmd BufReadPre,FileReadPre        *.gz,*.bz2 set bin
    autocmd BufReadPost,FileReadPost      *.gz call GZIP_read("gunzip")
    autocmd BufReadPost,FileReadPost      *.bz2 call GZIP_read("bunzip2")
    autocmd BufWritePost,FileWritePost    *.gz call GZIP_write("gzip")
    autocmd BufWritePost,FileWritePost    *.bz2 call GZIP_write("bzip2")
    autocmd FileAppendPre                 *.gz call GZIP_appre("gunzip")
    autocmd FileAppendPre                 *.bz2 call GZIP_appre("bunzip2")
    autocmd FileAppendPost                *.gz call GZIP_write("gzip")
    autocmd FileAppendPost                *.bz2 call GZIP_write("bzip2")

    " Aprs la lecture du fichier compress : dcompresse le texte dans le
    " buffer avec "cmd"
    fun! GZIP_read(cmd)
      let ch_save = &ch
      set ch=2
      execute "'[,']!" . a:cmd
      set nobin
      let &ch = ch_save
      execute ":doautocmd BufReadPost " . expand("%:r")
    endfun

    " Aprs l'criture du fichier compress : compresse le fichier crit avec "cmd"
    fun! GZIP_write(cmd)
      if rename(expand("<afile>"), expand("<afile>:r")) == 0
        execute "!" . a:cmd . " <afile>:r"
      endif
    endfun

    " Avant l'ajout au fichier compress : dcompresser le fichier avec "cmd"
    fun! GZIP_appre(cmd)
      execute "!" . a:cmd . " <afile>"
      call rename(expand("<afile>:r"), expand("<afile>"))
    endfun

   augroup END

   " Ce qui suit est dsactiv, car il change la liste de sauts. On ne peut pas utiliser
   " CTRL-O pour revenir en arrire dans les fichiers prcdents plus d'une fois.
   if 0
    " Lors de l'dition d'un fichier, saute toujours  la dernire position du curseur.
    " Ceci doit se trouver aprs les commandes de dcompression.
     autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal `\"" | endif
   endif

  endif " has("autocmd")





  22..33..  FFiicchhiieerr ggvviimmrrcc dd''eexxeemmppllee

  L'exemple de gvimrc de vim-5.5/runtime/gvimrc_example ressemble 
  celui-ci :















  ______________________________________________________________________
  " Un exemple de fichier gvimrc.
  " Ces commandes sont excutes lors du lancement de l'interface graphique.
  "
  " Mainteneur :        Bram Moolenaar <Bram@vim.org>
  " Dernires modifications : 2 Fv 1999
  "
  " Pour l'utiliser, copiez le dans
  "      pour Unix et OS/2 :  ~/.gvimrc
  "           pour Amiga :  s:.gvimrc
  "  pour MS-DOS and Win32 :  $VIM\_gvimrc

  " Passe les commandes externes par un tuyau au lieu d'un pseudo-tty
  "set noguipty

  " Active la fonte X11  utiliser
  " set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

  " Rend la ligne de commande de 2 lignes plus grande
  set ch=2

  " Permet le shift-insert fonctionnel comme dans les Xterm
  map <S-Insert> <MiddleMouse>
  map! <S-Insert> <MiddleMouse>

  " Ne fait ceci que pour Vim de version 5.0 et ultrieures.
  if version >= 500

    " J'aime avoir des chanes claires dans les commentaires C
    let c_comment_strings=1

    " Active la coloration syntaxique.
    syntax on

    " Active la coloration de la chane recherche.
    set hlsearch

    " Pour la version Win32, on a "K" qui cherche le keyword dans un fichier d'aide
    "if has("win32")
    "  let winhelpfile='windows.hlp'
    "  map K :execute "!start winhlp32 -k <cword> " . winhelpfile <CR>
    "endif

    " Cache le pointeur de souris lorsque l'on tape
    set mousehide

    " Utilise des couleurs sympathiques
    " Le fond pour le texte normal est en gris clair
    " Le texte sous la dernire ligne est en gris sombre
    " Le curseur est gris
    " Les constantes ne sont pas soulignes mais ont un fond lgrement plus clair
    highlight Normal guibg=grey90
    highlight Cursor guibg=Green guifg=NONE
    highlight NonText guibg=grey80
    highlight Constant gui=NONE guibg=grey95
    highlight Special gui=NONE guibg=grey95

  endif
  ______________________________________________________________________







  33..  FFiicchhiieerr dd''iinniittiiaalliissaattiioonn ddee llaa ccoolloorraattiioonn ssyynnttaaxxiiqquuee


  33..11..  MMtthhooddee aauuttoommaattiiqquuee

  La section ci-dessous provient d'une session gvim en tapant  :help
  syntax  -

  ______________________________________________________________________
  bash$ gvim un_test
  :help syntax
  ______________________________________________________________________


  Cliquez sur le menu Window=>Close_Others pour fermer les autres
  fentres.  Utilisez ensuite CTRL+] du menu  Procdures de chargement
  de syntaxe  qui vous emmnera sur la bonne entre. Utilisez CTRL+T
  pour revenir en arrire.

  Si un type de fichier que vous dsirez utiliser n'est pas encore
  dtect, il y a deux moyens pour l'ajouter. Il vaut mieux ne pas
  modifier le fichier _$_V_I_M_R_U_N_T_I_M_E_/_f_i_l_e_t_y_p_e_._v_i_m. Il sera rcrit lors de
  l'installation d'une nouvelle version de ViM.  Crz un fichier dans
  $HOME/vim/myfiletypes.vim et ajoutez lui ces lignes -

  ______________________________________________________________________
  " Nom du fichier : $HOME/vim/mestypesdefichiers.vim
  " mestypesdefichiers
  augroup filetype
          au! BufRead,BufNewFile *.mine   set filetype=mine
          au! BufRead,BufNewFile *.xyz    set filetype=drawing
          au! BufRead,BufNewFile *.prc    set filetype=plsql
  augroup END
  ______________________________________________________________________



  Ajoutez ensuite une ligne  vos fichiers $HOME/.vimrc et $HOME/.gvimrc
  pour initialiser la variable  mestypesdefichiers  au nom de ce
  fichier.  (AATTTTEENNTTIIOONN ::  Vous DEVEZ mettre ceci dans les deux fichiers
  vimrc et gvimrc pour que ceci fonctionne. Exemple :

  ______________________________________________________________________
  <code>
          let myfiletypefile = "~/vim/myfiletypes.vim"
  ______________________________________________________________________



  NNOOTTEE ::  Assurez vous que vous initialisez bien  mestypesdefichiers 
  avant de passer  la dtection du type de fichier. Ceci doit
  intervenir avant toute commande  :filetype on  ou  :syntax on .

  Votre fichier sera alors parcouru aprs l'intallation des
  autocommandes de type de fichier par dfaut. Ceci vous permet de
  passer outre tous les paramtres par dfaut, en utilisant  :au! 
  pour supprimer les autocommandes de type de fichier existant pour le
  mme schma. Seule l'autocommande pour parcourir le fichier
  scripts.vim est donn plus tard. Ceci vous permettra de vous assurer
  que les autocommandes dans  mestypesdefichiers  sont utilises avant
  de vrifier le contenu du fichier.





  33..22..  MMtthhooddee mmaannuueellllee

  Au lieu d'utiliser un menu  Syntax  vous pouvez lire manuellement le
  fichier de syntaxe. ditez le fichier avec gvim et donnez la commande
   so   : (en mode d'chappement). Par exemple :

  ______________________________________________________________________
          gvim foo.pc
          :so $VIM/syntax/esqlc.vim
  ______________________________________________________________________


  Les fichiers de syntaxe sont dans /usr/share/vim/syntax/*.vim. Vim
  supporte plus de 120 fichiers de syntaxe diffrents pour divers lan
  gages comme C++, PERL, VHDL, JavaScript, etc., et normment d'autres
  !

  Chaque fichier de syntaxe supporte une ou plusieurs extensions de
  fichiers par dfaut, par exemple, le fichier de syntaxe JavaScript
  supporte l'extension *.js. Si vous utilisez une extension qui cre un
  conflit avec un autre fichier de syntaxe par dfaut (comme ajouter du
  JavaScript  un fichier *.html) vous pourrez alors charger le fichier
  de syntaxe additionnel avec la commande :so
  $VIM/syntax/javascript.vim. Pour viter d'avoir  le taper, vous
  pouvez crer un lien symbolique par :

  ______________________________________________________________________
          ln -s $VIM/syntax/javascript.vim js
          gvim foo.html  (... this file contains javascript functions and HTML)
          :so js
  ______________________________________________________________________





  44..  UUssaaggee ddee VViiMM

  Vous pouvez utiliser ViM sous deux modes, l'un avec interface
  graphique et l'autre sans. Pour utiliser l'interface graphique
  utilisez la commande :

  ______________________________________________________________________
          gvim foo.cpp
  ______________________________________________________________________


  Pour utiliser le mode non-graphique utilisez :

  ______________________________________________________________________
          vim foo.cpp
  ou le mode ancien
          vi foo.cpp
  ______________________________________________________________________



  Il est trs recommand que vous utilisiez toujours gvim  la place de
  vim, car le mode GUI avec les couleurs augmentera rellement votre
  productivit.

  Le mode GUI gvim permet ce qui suit :

    vous pouvez marquer le texte en utilisant la souris pour faire des
     copier/couper/coller ;

    vous pouvez utiliser la barre de menu qui a les boutons File, Edit,
     Window, Tools, Syntax et Help ;

    galement dans un futur proche dans gvim - une seconde barre de
     menu affichera la liste des fichiers en cours d'dition, et vous
     pourrez changer entre les fichiers en cliquant sur leur nom, 
     moins que vous n'utilisiez les commandes vi - :e#, :e#1, :e#2,
     :e#3, :e#4, etc. pour slectionner les fichiers.


  55..  CCoommppaaggnnoonnss VVii

  En gnral ViM est utilis en conjonction avec d'autres outils
  puissants comme ccttaaggss et ggddbb. ccttaaggss est trs rapide pour la navigation
  au milieu de millions de lignes de code  C/C++  et ggddbb est pour le
  dboguage de code  C/C++ .  Une brve introduction  ces deux
  commandes indispensables sera donne dans ce chapitre.

  ccttaaggss est la commande la plus puissante pour coder en C, C++, Java,
  Perl, scripts shell Korn/Bourne ou Fortran. Les dveloppeurs utilisent
  intensivement ccttaaggss pour naviguer au travers de milliers de fonctions
   l'intrieur de programmes C/C++. Voyez `man ctags' sous Unix.  Il
  est ttrrss iimmppoorrttaanntt que vous appreniez comment utiliser ctags pour
  dvelopper des programmes en C, C++, Java, etc. La navigation est la
  tche simple la plus importante lors de dveloppement en C ou C++.
  L'utilisation de ctags peut vous aider  rapidement lire le code en
  sautant de la ligne d'appel  la fonction appelle, en s'enfonant
  dans les appels de fonctions imbriques, et en remontant de la
  fonction la plus imbrique jusqu' la fonction principale.  Vous
  pouvez aller et revenir de fonction en fonction trs rapidement.

  Sans NAVIGATION vous serez compltement perdu ! ccttaaggss est comme le
  COMPAS magntique ncessaire aux programmeurs.

  Utilisation de ccttaaggss :

  ______________________________________________________________________
          ctags *.cpp
          gvim -t foo_function
          gvim -t main
  ______________________________________________________________________


  Ceci ditera le fichier programme C++ qui contient la fonction
  foo_function() et placera directement le curseur sur la premire ligne
  de la fonction foo_function(). La deuxime commande vous placera sur
  la ligne contenant la dfinition de la fonction main().

   l'intrieur de l'diteur ViM, vous pouvez sauter  une fonction en
  tapant : (double point) tag nom_de_la_fonction comme ci dessous :

  ______________________________________________________________________
          :tag fonction_exemple
  ______________________________________________________________________


  Ceci placera le curseur sur la premire ligne de fonction_exemple().

  Si vous voulez sauter dans la fonction  partir de la ligne du fichier
  contenant le nom de la fonction, placez le curseur juste avant le nom
  de la fonction et tapez CCTTRRLL++]] (tapez la touche de contrle et le
  crochet gauche simultanment).




  ______________________________________________________________________
                  // code d'exemple
                  switch(id_number) {
                          Case 1:
                                  if ( foo_function( 22, "abcef") == 3 )
                                      ^
                                      |
                                      |
                                      |
                    Placez le curseur ici (juste avant foo_function) et tapez CTRL+]
                    Ceci vous emmnera  la fonction nomme "foo_function".
                    Pour revenir  cette ligne tapez CTRL+t
  ______________________________________________________________________


  Pour revenir  la ligne d'appel tapez CCTTRRLL++tt (la touche de contrle et
  la lettre 't' simultanment). Continuez  appuyer sur CCTTRRLL++tt pour
  inverser et revenir  la premire ligne o vous avez commenc la navi
  gation.  C'est--dire que vous pouvez conserver presses CCTTRRLL++]] et
  ensuite taper CCTTRRLL++tt pour revenir. Vous pouvez refaire ceci aussi sou
  vent que vous le dsirez pour avoir une navigation complte au travers
  de toutes les fonctions C ou C++.


  55..11..  CCttaaggss ppoouurr EESSQQLL

  Puisque ctags ne supporte pas directement le langage  Embedded SQL/C
  (ESQL), le script shell suivant peut tre utilis pour crer les
  marques pour esql.  ESQL/C est un ensemble de commandes SQL de base de
  donne  l'intrieur de programmes  C .  Le ESQL/C d'Oracle est
  appell Pro*C et Sybase, Informix ont ESQL/C et PostgreSQL a produit 
  ecpg .


  Sauvez ce fichier sous  sqltags.sh  et tapez chmod a+rx tags_gen.sh.































  ______________________________________________________________________
  #!/bin/sh

  # Programme pour crer les ctags pour les fichiers ESQL, C++ et C
  ESQL_EXTN=pc
  tag_file1=tags_file.1
  tag_file2=tags_file.2

  which_tag=ctags

  rm -f $tag_file1 $tag_file2 tags

  aa=`ls *.$ESQL_EXTN`
  #echo $aa
  for ii in $aa
  do
          #echo $ii
          jj=`echo $ii | cut -d'.' -f1`
          #echo $jj

          if [ ! -f $jj.cpp ]; then
                  echo " "
                  echo " "
                  echo "*******************************************************"
                  echo "Les fichiers ESQL *.cpp files n'existent pas..."
                  echo "Vous devez gnrer les fichiers *.cpp  partir des *.pc"
                  echo "en utilisant le pr-compilateur Oracle Pro*C ou Sybase"
                  echo "ou le pr-compilateur Informix esql/c."
                  echo "Puis relancez cette commande"
                  echo "*******************************************************"
                  echo " "
                  exit
          fi

          rm -f tags
          $which_tag $jj.cpp
          kk=s/$jj\.cpp/$jj\.pc/g

          #echo $kk > sed.tmp
          #sed -f sed.tmp tags >> $tag_file1

          #sed -e's/sample\.cpp/sample\.pc/g' tags >> $tag_file1
          sed -e $kk tags >> $tag_file1
  done

  # S'occupe des fichiers C++/C - exclut les fichiers ESQL *.cpp
  rm -f tags $tag_file2
  bb=`ls *.cpp *.c`
  aa=`ls *.$ESQL_EXTN`
  for mm in $bb
  do
          ee=`echo $mm | cut -d'.' -f1`
          file_type="NOT_ESQL"
          # Exclut les fichiers ESQL *.cpp et *.c
          for nn in $aa
          do
                  dd=`echo $nn | cut -d'.' -f1`
                  if [ "$dd" = "$ee" ]; then
                          file_type="ESQL"
                          break
                  fi
          done

          if [ "$file_type" = "ESQL" ]; then
                  continue
          fi
          rm -f tags
          $which_tag $mm
          cat tags >> $tag_file2
  done

  mv -f $tag_file2 tags
  cat  $tag_file1 >> tags
  rm -f $tag_file1

  # Doit sortir le fichier des marqueurs pour fonctionner correctement...
  sort tags > $tag_file1
  mv $tag_file1 tags
  ______________________________________________________________________




  55..22..  CCttaaggss ppoouurr lleess pprrooggrraammmmeess JJaavvaaSSccrriipptt,, lleess ssccrriippttss sshheellll KKoorrnn,,
  BBoouurrnnee

  Le script shell donn ci-dessous peut tre utilis pour gnrer les
  marques pour une trs large varit de programmes crits en
  JavaScript, les scripts PHP/FI, Korn, C, Bourne et beaucoup d'autres.
  C'est un module trs gnrique.

  Sauvez ce fichier sous tags_gen.sh et tapez chmod a+rx tags_gen.sh.








































  ______________________________________________________________________
  #!/bin/sh

  tmp_tag=tags_file
  tmp_tag2=tags_file2

  echo " "
  echo " "
  echo " "
  echo " "
  echo " "
  echo "Gnre les marqueurs pour..."
  while :
  do
          echo "Entrer l'extension du fichier pour lequel vous voulez gnrer des marqueurs."
          echo -n "Les extensions de fichiers peuvent tre sh, js, ksh, etc... : "
          read ans

          if [ "$ans" == "" ]; then
                  echo " "
                  echo "Mauvaise entre. Essayez encore !"
          else
                  break
          fi
  done

  rm -f $tmp_tag

  aa=`ls *.$ans`

  for ii in $aa
  do
          jj=`echo $ii | cut -d'.' -f1`
          #echo $jj
          cp $ii $jj.c
          ctags $jj.c
          echo "s/$jj.c/$ii/g" > $tmp_tag2
          sed -f $tmp_tag2 tags >> $tmp_tag
          \rm -f tags $jj.c
  done

  sort $tmp_tag > tags

  rm -f $tmp_tag $tmp_tag2
  ______________________________________________________________________




  55..33..  DDbboogguueerr aavveecc ggddbb

  Vous utiliserez gdb extensivement avec Vi. Le dboguage est l'un des
  plus importants aspects de la programmation en tant que cot majeur du
  dveloppement et des tests des projets.

  Pour dboguer des programmes C/C++ vous utiliserez l'outil  gdb .
  Voyez ccoommmmee


               gcc -g3 foo.c foo_another.c sample.c




  Pour configurer des alias utiles :

    Configurez l'alias dans votre ~/.bash_profile
          alias gdb='gdb -directory=/home/src -directory=/usr/monnom/src '
    Donnera -
          gdb foo.cpp
          gdb> dir /hom2/another_src
          Ceci ajoutera un chemin  la recherche de fichier
          gdb> break 'some_class::func<TAB><TAB>
    Ce qui compltera le nom de la fonction en vous vitant le temps de
  frappe... et sortira comme -
          gdb> break 'some_class::function_foo_some_where(int aa, float bb)'




  Taper la touche TAB deux fois permet le complment de la ligne de
  commande, sauvant ainsi beaucoup de temps de frappe. C'est l'une des
  techniques les plus importantes pour l'utilisation de gdb.

  Pour obtenir de l'aide en ligne -


               gdb> help
         Donne l'aide en ligne
               gdb> help breakpoints
         Donne plus de dtails sur les points d'ancrage.




  Pour placer les points d'ancrage et effectuer du dboguage


               unixprompt> gdb exe_filename
               gdb> b main
         Ceci mettra un point d'ancrage dans la fonction main()
               gdb> b 123
         Ceci mettra un point d'ancrage  la ligne 123 du fichier courant
               gdb> help breakpoints
           Donne plus de dtails sur les points d'ancrage.




  Pour analyser des core dumps :


               unixprompt> gdb exe_filename  core
               gdb> bt
       Donne une trace de retour des fonctions et les numros de lignes o le
       programme a chou
               gdb> help backtrace
         Donne plus de dtails sur la trace de retour.




  Vous pouvez aussi utiliser une version GUI de gdb appelle xxgdb.

  Outils de perte de mmoire -

    Freeware Electric Fence sous linux cd

    Commercial tools Purify  <http://www.rational.com>

    Insure++  <http://www.insure.com>

  66..  AAiiddee ddee VViiMM eenn lliiggnnee

  Voyez les pages de manuel en ligne. Au prompt unix, tapez

  Ou lors d'une session gvim tapez :help pour obtenir la page d'aide.
  Voyez aussi le ``''


  77..  PPaaggeess wweebb ddee VViiMM eett lliieennss VViiMM

  La page principale de ViM se trouve sur  <http://www.vim.org>, et son
  site miroir aux US est sur  <http://www.us.vim.org>.

  La FAQ ViM est sur  <http://www.grafnetix.com/~laurent/vim/faq.html>
  et sur  <http://www.vim.org/faq>.

  La page ViM d'Eli se trouve sur
  <http://www.netusa.net/~eli/src/vim.html>.

  La page des amoureux de Vi sur  <http://www.cs.vu.nl/~tmgil/vi.html>.

  Le guide de rfrence sur ViM sur
  <http://scisun.sci.ccny.cuny.edu/~olrcc/vim/>.

  Les listes de diffusion ViM sont sur
  <http://www.findmail.com/listsaver/vimannounce.html> et
  <http://www.vim.org/mail.html>.

  Les archives des listes sont conserves sur :

    <http://www.egroups.com/group/vim>

    <http://www.egroups.com/group/vimdev>

    <http://www.egroups.com/group/vimannounce>

  Les macros ViM sont sur
  <http://www.grafnetix.com/~laurent/vim/macros.html>.


  88..  TTuuttoorriieell VViiMM

  88..11..  TTuuttoorriieellss VViiMM ssoouuss llaa mmaaiinn

  Sur les systmes Linux, on trouve souvent le tutoriel dans
  /usr/doc/vim-common-5.*/tutor, sur les autres systmes Unix cherchez
  le rpertoire o ViM est install et cherchez le rpertoire doc.

  ______________________________________________________________________
          bash$ cd /usr/doc/vim-common*/tutor
          bash$ less README.txt
          bash$ cp tutor $HOME
          bash$ cd $HOME
          bash$ less tutor
  ______________________________________________________________________




  88..22..  TTuuttoorriieellss VVii ssuurr IInntteerrnneett


    Purdue University
     <http://ecn.www.ecn.purdue.edu/ECN/Documents/VI/>


    Quick Vi tutorial  <http://linuxwww.db.erau.edu/LUG/node165.html>

    Advanced Vi tutorial  <http://www.yggdrasil.com/bible/bible-
     src/user-alpha-4/guide/node171.html>

    Tutorials  <http://www.cfm.brown.edu/Unixhelp/vi_.html>

    Tutorials
     <http://www.linuxbox.com/~taylor/4ltrwrd/section3_4.html>

    Unix world online vi tutorial
     <http://www.networkcomputing.com/unixworld/unixhome.html>

    Univ of Hawaii tutorial  <http://www.eng.hawaii.edu/Tutor/vi.html>

    InfoBound   <http://www.infobound.com/vi.html>

    Cornell Univ  <http://www.tc.cornell.edu/Edu/Tutor/Basics/vi/>

    Vi Lovers home page  <http://www.cs.vu.nl/~tmgil/vi.html>

    Aprs Sept 2000, sera sur
     <http://www.thomer.com/thomer/vi/vi.html>

    Beginner's Guide to vi
     <http://www.cs.umr.edu/unixinfo/general/packages/viguide.html>

    vi Help file  <http://www.vmunix.com/~gabor/vi.html>

    ViM FAQ  <http://www.math.fu-berlin.de/~guckes/vim/faq/>

  Il y a de nombreux tutoriels Vi sur Internet. Sur Yahoo (Lycos, excite
  ou Hotbot), entrer  Vi Tutorial  dans le champ de recherche vous
  renverra de nombreux pointeurs.


  99..  TTuuttoorriieell VVii

  Dans ce tutoriel, nous dcrirons quelques commandes et concepts vvii
  avancs, vous pourrez ainsi apprcier la puissance de vvii et dcider de
  construire vos connaissances avec les commandes vvii. Quasiment toutes
  les rfrences listent les commandes disponibles, mais beaucoup ne
  montrent pas comment ces commandes interagissent ; ce point prcis est
  le thme principal de ce tutoriel.


  99..11..  CCoommmmaannddeess dduu mmoouuvveemmeenntt dduu ccuurrsseeuurr

  Les commandes du mouvement du curseur de vvii vous permettent de
  positionner le curseur dans le fichier et/ou  l'cran de manire
  efficace, avec un nombre minimal de frappe de touches. Il y a de
  nombreuses commandes contrlant les mouvements du curseur - n'essayez
  pas de toute les mmoriser en une fois ! Plus tard, nous verrons que
  la majeure partie de la puissance de vvii vient du mlange entre les
  commandes de mouvement du curseur et les autres commandes pour
  effacer, changer, copier, et filtrer le texte.

  Veuillez diter un gros fichier texte (disons, wwkknniigghhtt) afin
  d'exprimenter chaque commande dcrite. Gardez en tte que ces
  commandes ne marchent qu'en Mode Commande, et pas en Mode Insertion ;
  si vous voyez vos  commandes  dans votre texte, appuyez sur ESC pour
  retourner en Mode Commande.


    ttoouucchheess ffllcchheess : Ainsi que nous l'avons vu, les touches curseur
     permettent de se dplacer avec un simple caractre vers la gauche,
     le bas, le haut et la droite. Les mouvements au-del du haut du
     fichier, en dessous du bas,  droite de la fin de la ligne, ou 
     gauche du dbut ne sont pas autoriss (pas de coupure de ligne).



    hhjjkkll : Lorsque vvii a t crit (vers 1978), de nombreux terminaux
     sur systmes UNIX n'avaient pas de touches flches !  hh,, jj,, kk,, et
     ll ont t choisies comme commandes pour se dplacer vers la gauche,
     le bas, le haut, et la droite, respectivement.  Essayez les ! La
     plupart des intgristes de vvii les prfrent aux touches flches
     car :

    ((aa)) elles sont  la mme place sur tous les claviers, et

    ((bb)) elles se placent agrablement sous les doigts, au contraire de
     la plupart des touches flches, qui sont arranges en bote ou en
      T  ou sous une autre forme non linaire.


     Pourquoi h, j, k, et l ? Eh bien, dans le code des caractres
     ascii, CTRL-H est l'effacement (dplacement vers la gauche), CTRL-J
     le retour chariot (dplacement vers le bas), et bien entendu, k et
     l sont proches de h et j, et comme vous le voyez, ces touches
     forment une combinaison mnmonique.



    00 : ( zro , et pas  oh ) Dplacement au dbut de la ligne
     courante. (Pour essayer ceci et les quelques commandes suivantes,
     utilisez les touches du curseur ou hh jj kk ll pour vous dplacer vers
     une ligne indente contenant quelques caractres  e . Si vous ne
     pouvez trouver de ligne indente dans votre fichier, crez en une
     en insrant quelques espaces au dbut de la ligne.)



     ^^  : Dplacement sur le premier caractre non-blanc de la ligne
     courante (pour une ligne indente, 0 et ^ ont des significations
     diffrentes).



     $$  : Dplacement sur le dernier caractre de la ligne courante.



     ttCC  : Dplacement jusqu'au (mais pas sur) le prochain caractre C
     de la ligne courante (tapez 0, puis tapez te. Ceci vous dplacera
     vers le premier e de la ligne courante).



     ffCC  : Trouve (dplacement sur) le prochain caractre C de la ligne
     courante (tapez fe, et le curseur trouvera - c'est--dire se mettra
     sur - le prochain e de la ligne courante).



     TTCC  : Dplacement jusqu'au (mais pas sur) le prcdent caractre C
     de la ligne courante (tapez $, puis Te).



     FFCC  : Trouve (dplacement sur) le prcdent caractre C de la
     ligne courante (tapez Fe).
     nn||  : Dplacement sur la colonne n de la ligne courante (tapez 20
     | ; les chiffres 2 et 0 ne seront pas affichs lorsque vous les
     taperez, mais lorsque vous presserez | le curseur se dplacera en
     colonne 20).

     Essayez quelquez trucs avec t f T F | . Lorsque vous fates quelque
     chose d'illgal, vvii mettra un bip.



     ww  : Dplacement au dbut du prochain  petit  mot (un  petit 
     mot consiste en une suite ininterrompue de caractres
     alphanumtiques ou de caractres de ponctuation, mais pas un
     mlange de caractres de ponctuation et alphanumriques). Essayez
     de taper w une douzaine de fois -- notez ce qui arrive aux
     ponctuations.



     WW  : Dplacement au dbut du prochain  grand  mot (mlange
     alphanumrique et ponctuation). Essayez de taper W une douzaine de
     fois.



     bb  : Retour au dbut d'un  petit  mot.



     BB  : Retour au dbut d'un  grand  mot.



     ee  : Dplacement  la fin d'un  petit  mot.



     EE  : Dplacement  la fin d'un  grand  mot.



     ++ RReettuurrnn  : Dplacement sur le premier caractre non-blanc sur la
     mme ligne (+ et la touche Entre ont le mme effet).



     --  : Dplacement sur le premier caractre non-blanc de la ligne
     prcdente.



     ))  : Dplacement sur la fin d'une phrase (une phrase se termine
     soit par une ligne blanche, ou un point ou une marque d'exclamation
     suivis par deux caractres d'espace ou la fin de la ligne. Un point
     ou une marque d'exclamation suivis par un seul caractre d'espace
     ne termine pas une phrase ; ceci est un comportement correct, en
     accord avec les rgles traditionnelles de la manire dont les
     phrases doivent apparatre dans les documents imprims, mais
     apparat souvent comme faux pour ceux qui n'ont jamais utilis une
     classe typographique correcte.)

     NdT : Ceci n'est valable qu'en typographie anglaise.  En
     typographie franaise, une phrase se termine par un point (ou une
     marque d'exclamation) suivit par une espace.


     ((  : Dplacement au dbut d'une phrase.



     }}  : Dplacement  la fin d'un paragraphe (les paragraphes sont
     spars par des lignes blanches, par dfinition avec vvii).



     {{  : Dplacement au dbut d'un paragraphe.



     HH  : Dplacement vers la position premire (la ligne du haut) de
     l'cran.



     MM  : Dplacement au milieu de la ligne  l'cran.



     LL  : Dplacement sur la dernire ligne de l'cran.



     nnGG  : Dplacement sur la ligne n. Si n n'est pas donn,
     dplacement sur la dernire ligne du fichier (essayez 15G pour vous
     dplacer sur la ligne 15, par exemple. La commande CTRL-G affiche
     le nom du fichier, quelques informations sur l'tat, et le numro
     de la ligne actuelle. Pour vous dplacer au dbut du fichier : 1G).



     CCTTRRLL--dd  : Dplacement vers le bas d'un demi-cran (voir note).

     CCTTRRLL--uu  : Dplacement vers le haut d'un demi-cran (voir note).

     CCTTRRLL--ff  : Dplacement vers le bas d'un cran (voir note).

     CCTTRRLL--bb  : Dplacement vers le haut d'un cran (voir note).

     NNoottee  : Ces quatres commandes de dplacement ne peuvent tre
     utilises avec les commandes d'effacement, de changement, de copie
     ou de filtre.



     //rreegg__eexxpp  : Dplacement sur la prochaine occurence de l'expression
     rationnelle reg_exp.  Lorsque vous tapez /, le curseur se dplace
     vers le coin en bas  gauche de l'cran et attend que vous tapiez
     l'expression rationnelle.  Tapez la touche Entre pour finir ; vvii
     cherchera alors dans la suite du fichier la prochaine occurence de
     l'expression rationnelle. Par exemple, tapez /the puis Entre. Ceci
     vous dplacera sur la prochaine apparition de the, peut-tre mise
     en vidence au milieu d'un mot plus long (other, weather, etc.). Si
     vous tapez juste / puis Entre, vvii cherchera la prochaine
     apparition de la dernire expression rationnelle que vous aviez
     cherch.



     nn  : A le mme effet que de presser / et Entre ; c--d recherche
     la prochaine occurence de la dernire expression rationnelle que
     vous aviez cherch.

     ??rreegg__eexxpp  : Recherche en arrire, et pas en avant. Si la reg_exp
     n'est pas donne, recherche la dernire expression rationnelle
     entre.  Les 2 / et ? sont tournants, donc rechercher  plus bas 
     que le bas ou  plus haut  que le haut du fichier est lgal.



     NN  : Identique  ? et Entre.


  99..22..  CCoommpptteeuurrss ddee rrppttiittiioonnss

  La plupart des commandes de mouvements prsentes ci-dessus peuvent
  tre prcdes d'un compteur de rptitions ; le mouvement est
  simplement rpt le nombre de fois donn :


     33ww  : Dplacement en avant de 3 mots.

     55kk  : Dplacement vers le haut de 4 caractres.

     33ffaa  : Trouve le 3me  a  successif de la ligne courante.

     66++  : Descend de 6 lignes.

     Pour certaines commandes, les  compteurs de rptitions  ont des
     significations spciales :

     44HH  : Dplacement vers la ligne 4 de l'cran (touche home et 3).

     88LL  : Dplacement sur la 8me ligne  partir du bas de l'cran.

     33$$  : Dplacement  la fin de la 3me ligne plus bas.

     Pour plusieurs commandes (telles que ^) le compteur de rptition
     est ignor ; pour d'autres (par exemple, / et ?) il est illgal.


  99..33..  EEffffaacceerr dduu tteexxttee

  Nous avons vu que dddd efface la ligne courante. Ceci peut tre utilis
  avec un compteur de rptitions : 3dd efface trois lignes, la ligne
  courante et les 2 lignes suivantes.

  La commande d peut tre utilise comme un  prfixe  pour la plupart
  des commandes de mouvement ci-dessus pour effacer  peu prs toute
  sorte de parties de texte. Lorsqu'elles sont utilises avec d, les
  commandes de mouvements sont appelles des spcificateurs de cibles.
  On peut donner un compteur de rptition  d (lorsque vous essayez ces
  expriences, rappellez vous d'appuyer sur u aprs chaque commande pour
  annuler l'effacement).


     ddww  : Efface le prochain  petit  mot.

     dd33ww  : Efface les 3 prochains  petits  mots.

     33ddww  : Trois fois, efface le prochain  petit  mot.

     33dd33ww  : Trois fois, efface les 3 prochains  petits  mots
     (c'est--dire, efface les 9 prochains  petits  mots).

     dd++  : Efface la ligne actuelle et la ligne suivante.

     dd//tthhee : Efface  partir du caractre courant jusqu', mais sans
     inclure, la prochaine apparition de  the .
     dd$$  : Efface jusqu' la fin de la ligne.

     dd00  : Efface jusqu'au dbut de la ligne.

     dd3300GG  : Efface la ligne courante jusqu' et incluant la ligne 30.

     ddGG  : Efface la ligne courante jusqu' et incluant la dernire
     ligne.

     dd11GG  : Efface la ligne courante jusqu' et incluant la ligne 1.

     Pour effacer de simples caractres, utilisez x. x peut tre utilis
     en utilisant un compteur rptitif :

     1155xx  : Efface le caractre courant et les 14 suivants.

     x est simplement une abbrviation de d1 ; c'est--dire efface un
     caractre  droite.


  99..44..  CChhaannggeerr llee tteexxttee

  La commande c est similaire  d,  part qu'elle change le mode de vvii
  en insertion, autorisant le texte original (non dsir)  tre chang
  en quelque chose d'autre.

  Par exemple, placez le curseur sur le dbut d'un mot (tapez w pour
  arriver au dbut du prochain mot). Ensuite, tapez cw pour changer ce
  mot.  l'cran, le dernier caractre de ce mot en cours de changement
  sera remplac par un symbole $$ indiquant la fin du changement ; tapez
  un nouveau mot (vous rcrirez le mot original  l'cran) et tapez la
  touche ESC lorsque vous aurez fini. Votre entre peut tre plus longue
  ou plus courte que le mot en cours de changement.

  Placez le curseur au dbut d'une ligne contenant au moins trois mots,
  et taper c3w pour changer ces trois mots. Essayez c$ pour changer la
  fin de la ligne actuelle. Dans tous les cas o le changement affecte
  uniquement la ligne courante, la fin du changement est indique avec
  $.

  Lorsqu'un changement affecte plus que la ligne courante, vvii efface le
  texte original de l'cran et se place en mode insertion. Par exemple,
  essayez c3+ pour changer la ligne courante et les trois suivantes ; vvii
  supprime les quatres lignes originales de l'cran et se place en mode
  d'insertion sur une nouvelle ligne blanche.  Comme toujours, tapez la
  touche ESC lorsque vous aurez fini d'entrer votre nouveau texte.

  Quelques autres commandes de changement :

     cccc  : Change la ligne courante.

     55cccc  : Change cinq lignes (courante et quatre suivantes).

     cc//tthhee  : Changer du caractre courant jusqu', mais sans inclure,
     la prochaine occurence de  the .

     cc$$  : Change jusqu' la fin de la ligne.

     cc3300GG  : Change de la ligne courante jusqu' la ligne 30 incluse.

     ccGG  : Changer de la ligne courante jusqu' et incluant la dernire
     ligne.

     cc11GG  : Changer la ligne courante jusqu' la ligne 1 incluse.


  99..55..  EEmmmmeenneerr ((ccooppiieerr)) dduu tteexxttee

  La commande y emmne une copie du texte dans un buffer ; le texte
  copi peut tre plac (ou coll) n'importe o dans le fichier en
  utilisant p ou P.

  La forme la plus simple de copie est yy pour copier la ligne courante
  ; aprs yy, essayez p pour mettre une copie de la ligne copie aprs
  le curseur. En suivant yy, vous pouvez faire autant de copie de la
  ligne emmene que vous le voulez en vous dplaant dans le fichier et
  en tapant p.

  Pour copier plusieurs lignes, essayez, par exemple, 5yy (copie la
  ligne courante et les 4 lignes suivantes). p place une copie des
  lignes emmenes aprs le curseur ; la squence 5yyp  marche  mais ce
  n'est probablement pas ce que vous voudriez faire. La commande P
  fonctionne comme p, mais place une copie de la ligne au-dessus du
  curseur ; essayez la squence 5yyP.

  Autres commandes de copie :

     yy33ww  : Copie 3 mots.

     yy$$  : Copie jusqu' la fin de la ligne.

     yy11GG  : Copie de la ligne courante jusqu' la ligne 1 incluse.


  99..66..  FFiillttrreerr llee tteexxttee

  La commande de filtrage !! demande le nom d'une commande UNIX (qui doit
  tre un filtre), passe les lignes slectionnes par ce filtre, en
  remplaant les lignes slectionnes dans le buffer vvii avec la sortie
  de la commande filtrante. La capacit de vvii  passer des parties
  arbitraires de texte au travers de tout filtre UNIX ajoute une
  flexibilit incroyable  vvii, sans  cot supplmentaire  de taille ou
  de performance  vvii mme.

  Quelques exemples peuvent aider l'illustration. Crez une ligne dans
  votre fichier contenant juste le mot  who  et absolument aucun autre
  texte. Placez le curseur sur cette ligne, et tapez !!!!. Cette commande
  est analogue  dd, cc, ou yy, mais au lieu d'effacer, de changer ou de
  copier la ligne courante, elle filtre la ligne courante. Lorsque vous
  pressez le second !, le curseur descend vers le coin en bas  gauche
  de l'cran et un simple ! est affich, vous demandant d'entrer le nom
  d'un filtre. En tant que nom de filtre, tapez  sh  et pressez la
  touche Entre. sshh (le shell Bourne) est un filtre ! Il lit l'entre
  standard, excute une partie de l'entre (c'est--dire qu'il excute
  des commandes), et envoie sa sortie (la sortie de ces commandes)  la
  sortie standard. Filtrer la ligne contenant  who  au travers de
   sh  remplace la ligne contenant  who  par la liste des
  utilisateurs du systme courant -- directement dans votre fichier !

  Essayez de rpter ce procd avec ddaattee. C'est--dire, crez une ligne
  ne contenant rien d'autre que le mot ddaattee, puis placez le curseur sur
  cette ligne, et tapez !!!!sshh et la touche Entre. La ligne contenant
  ddaattee est remplace par la sortie de la commande ddaattee.

  Mettez votre curseur sur la premire ligne de la sortie de  who .
  Comptez le nombre de lignes. Supposons, par exmple, que ce nombre soit
  six. Slectionnez alors ces six lignes  filtrer au travers de sort ;
  tapez 66!!!!ssoorrtt et la touche Entre. Les six lignes seront passes 
  sort, et la sortie de sort remplacera les six lignes d'origine.

  La commande filtre peut uniquement tre utilise sur des lignes
  compltes, pas sur des caractres ou des mots.
  Quelques autres commandes de filtres (ici,  CR  indique pressez
  Entre) :

    !!//tthhee CCRR ssoorrtt CCRR : Sort la ligne courante jusqu' la ligne suivante
     contenant  the  incluse.

     !!11GGggrreepp tthhee CCRR : Remplace la ligne courante jusqu' la ligne 1
     incluse par les lignes contenant  the .

     !!GGaawwkk ''{{pprriinntt $$11}}'' CCRR  : De la ligne courante jusqu' la fin du
     fichier, remplace chaque ligne par son premier mot.


  99..77..  MMaarrqquueerr ddeess lliiggnneess eett ddeess ccaarraaccttrreess

  Vous pouvez marquer des lignes et des caractres pour tre utiliss en
  tant que cible pour des mouvements, effacement, changement, copie, et
  filtration en utilisant la commande mc, o c est une lettre minuscule.

  Par exemple, mettez le curseur au milieu d'un mot et tapez ma.  Ceci
  marque le caractre sous le curseur sous la marque a.

  Maintenant, dplacez le curseur en dehors du caractre marqu vers une
  ligne diffrente (utilisez les flches curseur, CTRL-u, ou autre).
  Pour retourner  la ligne marque, tapez 'a (c'est--dire apostrophe,
  puis a). Ceci vous place sur le premier caractre non-blanc de la
  ligne contenant la marque a.

  Sortez de la ligne encore une fois. Pour retourner au caractre
  marqu, tapez `a (apostrophe inverse, puis a). Ceci vous dplacera sur
  le caractre marqu par a.

  Le marquage est habituellement utilis avec l'effacement, le
  changement, la copie ou la filtration. Par exemple, dplacez le
  curseur sur une autre ligne que celle contenant la marque a, et
  pressez d'a (d, apostrophe, a). Ceci efface de la ligne courante
  jusqu' la ligne marque a incluse.

  Mettez le curseur au milieu d'un autre mot et tapez mb pour mettre la
  marque b. Maintenant, dplacez le curseur hors de ce mot (mais
  seulement de quelques lignes, ainsi vous pourrez voir ce que nous
  allons faire plus facilement), et pressez d`b (d, apostrophe inverse,
  b). Ceci efface le caractre courant jusqu'au caractre marqu par b
  inclus.

  Comme autre exemple, pour trier la sortie de who, marquez la premire
  ligne (ma), puis dplacez le curseur vers la dernire ligne et taper
  !'asort puis la touche Entre.

  Si vous sautez jusqu' une marque et que vous dcidez de revenir en
  arrire, de l'endroit d'o vous avez saut, vous pouvez taper .Pp

  99..88..  NNoommmmeerr lleess ttaammppoonnss

  Lorsque vous effacez, modifiez, ou copier du texte, le texte original
  est sauv (jusqu'au prochain effacement, changement ou copie) dans un
  tampon non nomm  partir duquel il peut tre mis en utilisant p ou P.
  En utilisant le tampon non nomm, seul le plus rcent changement du
  texte peut tre rcupr.

  Si vous voulez effacer, changer ou copier plusieurs parties de texte
  et se souvenir de toutes (jusqu' un maximum de 26), vous pouvez
  donner un nom au tampon avec la commande utilise. Un nom de tampon
  est de la forme "c (double apostrophe, c minuscule).


  Par exemple, tapez "ayy pour copier la ligne courante dans le tampon
  a, puis dplacez vous sur une autre ligne et tapez "byy pour copier
  cette ligne dans le tampon b. Maintenant, dplacez vous n'importe o
  dans le fichier et tapez "ap et "bp pour placer des copies du texte
  sauv dans les tampons a et b.

  Quelques autres commandes de tampon :

     ""aa66yyyy  : Copie 6 lignes (courante et 5 suivantes) dans le tampon
     a.

     ""bbdd11GG  : Efface de la ligne courante jusqu' la ligne 1 incluse,
     en sauvant les lignes effaces dans le tampon b.

     ""ccyy''cc  : Copie de la ligne courante jusqu' la ligne marque c
     dans le tampon c (les marques et les tampons sont distincts, et
     peuvent avoir le mme nom sans que vvii ne s'en proccupe).


  99..99..  SSuubbssttiittuuttiioonnss

  Pour changer un bloc de texte par un autre dans les lignes de votre
  fichier, utilisez la commande :s. Quelques exemples de substitutions :

     ::11,,$$ss//tthhee//TTHHEE//gg  De la ligne 1  la dernire ligne (ligne $),
     remplace le texte  the  par  THE  ; le fais globalement pour
     toute ligne o se trouve un  the .

     ::''aa,,..ss//..**//hhaa hhaa//  De la ligne marque a jusqu' la ligne actuelle
     (ligne .), substitue tout ce qu'il y a sur la ligne par le texte 
     ha ha .


  99..1100..  DDiivveerrsseess  ccoommmmaannddeess ddoouubbllee ppooiinntt 

  Toutes les commandes de double point dbutent avec  :  ; lorsque
  vous tapez ce symbole, le curseur saute vers le coin bas  gauche de
  l'cran, et un prompt  deux points est affich, attendant que vous
  finissiez la commande.

  Quelques exemples importants :

    ::ww  crit le contenu du tampon dans le fichier sans quitter vvii.

    ::ww aabbcc  crit le contenu du tampon dans le fichier abc (cre abc
     s'il n'existe pas, ou rcrit son contenu actuel s'il existe) sans
     quitter vvii.

    ::11,,1100ww  aabbcc   crit les lignes 1  10 dans le fichier abc.

    ::''aa,,$$ww aabbcc  crit de la ligne marque a jusqu' la dernire ligne
     dans le fichier abc.

    ::ee aabbcc dite le fichier abc, au lieu du fichier actuel. vvii affiche
     un message d'erreur si des changements ont t faits au fichier
     actuel et qui n'ont pas t sauvs avec :w.

    ::ee ##  dite le fichier prcdemment dit (des commandes
     successives :e# vont et viennent entre deux fichiers).

    ::ff aabbcc  Change le nom du fichier pour le tampon actuel vers abc.

    ::qq Quitte,  moins qu'il n'y ait des changements que vous ayez
     faits.


    ::qq!! Quitte, en omettant tous les changements que vous pourriez
     avoir fait.

    ::rr aabbcc Lit le fichier abc dans le tampon vvii actuel, aprs la ligne
     sur laquelle se trouve le curseur (essayez :r croc pour insrer une
     copie du fichier croc).

    ::!!ccmmdd Excute la commande cmd (who, sort, ls, etc.).


  99..1111..  UUttiilliisseerr lleess ooppttiioonnss

  Diverses options peuvent affecter le  confort  de vvii. Vous pouvez
  afficher toutes les diverses options pouvant tre utilises en tapant
  set all.  Vous pouvez galement utiliser  :set  pour changer les
  options.

  Par exemple, si vous dsirez voir le numro de ligne pour les lignes
  du fichier que vous ditez, utilisez la commande :set number. Pour
  supprimer l'affichage du numro de ligne, utilisez la commande :set
  nonumber. La plupart des options peuvent tre abrges ; :set nu
  affiche le numro des lignes et :set nonu le supprime.

  Si vous utilisez :set nomagic, la signification spciale des
  caractres d'expression rgulire (point, astrisque, crochet, etc.)
  est supprime.  Utilisez :set magic pour restaurer ces significations
  particulires.

  Quelques options ont une valeur. Par exemple, :set tabstop=4 affiche
  les tabulations en quatre caractres d'espace, plutt que les huit
  habituels.

  Si vous trouvez que vous dsirez toujours certaines options places de
  certaines manires, vous pouvez mettre ces commandes optionnelles dans
  un fichier .exrc, ou vous pouvez utiliser la variable d'environnement
  EXINIT pour spcifier les options dsires.

  Par exemple, si votre shell par dfaut est le shell Bourne, cette
  ligne peut aller dans votre fichier .profile :

  ______________________________________________________________________
      EXINIT='set nomagic nu tabstop=4'; export EXINIT
  ______________________________________________________________________


  Si votre shell par dfaut est un C shell, cette ligne peut aller dans
  votre fichier .login :

  ______________________________________________________________________
      setenv EXINIT 'set nomagic nu tabstop=4'
  ______________________________________________________________________




  99..1122..  CCaarrttooggrraapphhiiee ddeess ttoouucchheess

  Si vous vous apercevez que vous utilisez encore et encore la mme
  srie de commandes simples, vous pouvez les lier  une touche de
  commande inutilise en utilisant la commande :map. Si votre lien
  inclut des caractres de contrle comme la touche Entre (ctrl-M en
  ascii) ou ESC (ctrl-[ en ascii), vous pouvez les faire prcder de
  ctrl-v pour supprimer leur signification classique.

  Par exemple, cette commande relit ctrl-A pour dplacer le curseur de
  55 lignes, puis revenir  la ligne vide la plus rcente, changer
  ensuite  cette ligne blanche par un saut de page (ctrl-L) et trois
  lignes blanches. C'est  dire que chaque ctrl-A paginera la page
  suivante, sans couper de paragraphes entre les pages.

  Note : Dans cette commande, chaque caractre de contrle est
  reprsent par ^C, o C est une lettre majuscule quelconque. Par
  exemple, ctrl-M est reprsent par ^M. De mme, lorsque vous entrez
  cette commande vous ne verrez pas les caractres ctrl-v : chaque ctrl-
  v se voit remplac par la signification spciale du caractre de
  contrle suivant, ainsi lorsque vous utiliserez la squence ^V^M, tout
  ce que vous verrez  l'cran est un ^M. Dans cette commande, ^M est la
  touche Entre et ^[ la touche ESC.

  ______________________________________________________________________
           :map ^A  55+?^$^V^Mcc^V^L^V^M^V^M^V^M^V^[
  ______________________________________________________________________




  99..1133..  ddiitteerr pplluussiieeuurrss ffiicchhiieerrss

  Vous pouvez diter plusieurs fichiers avec vvii en lui donnant plusieurs
  noms de fichiers en arguments de ligne de commande :

  ______________________________________________________________________
           vi croc fatherw  wknight
  ______________________________________________________________________


  Trois commandes sont utilises pour se dplacer entre plusieurs
  fichiers :

     ::nn   Dplace dans le prochain fichier de la liste d'arguments
     (vous devez sauver les changements avec :w ou vvii affichera un
     message d'erreur).

     ::NN  Dplace dans le fichier prcdent de la liste d'arguments
     (vous devez sauver les changements avec :w ou vvii affichera un
     message d'erreur).

     ::rreeww Rembobine et repart du premier fichier de la liste
     d'arguments.

  Les commandes :n, :N et :rew sont quelques peu tranges, mais elles
  ont des bnfices importants : le contenu des tampons ("a, "b, "c,
  etc.) sont connus entre les fichiers, et vous pouvez ainsi utiliser :n
  et :rew avec p et P pour copier le texte vers l'un ou l'autre des
  fichiers. De mme, la plus rcente chane de recherche des commandes /
  et ? sont les mmes suivant les fichiers, et vous pouvez ainsi faire
  des recherches rptes sur plusieurs fichiers assez facilement.

  Par exemple, tentez l'exprience suivante : tout d'abord sortez de vvii,
  et excutez ensuite vvii avec croc et wknight en arguments :

  ______________________________________________________________________
           $ vi croc wknight
  ______________________________________________________________________


  Dans croc, cherchez

      //tthhee << CCRR >>

  Copiez cette ligne dans le tampon a :

      ""aayyyy

  Maintenant dplacez vous sur le prochain fichier (vous n'avez fait
  aucun changement  croc, donc a marchera) :

      ::nn << CCRR >>

  Cherchez la ligne suivante contenant  the , sans retaper la chane
  de recherche :

      nn

  Mettez une copie du tampon aprs la ligne courante dans wknight :

      ""aapp

  Descendez de deux lignes, et copiez la ligne courante dans le tampon b
  :

      jjjj""bbyyyy

  Sauvez les changements de wknight

      ::ww << CCRR >>

  Maintenant, retournez  croc

      ::rreeww << CCRR >>

  Cherchez encore, et mettez une copie du tampon b aprs la ligne
  trouve :

      nn""bbpp

  Sauvez les changements, et quittez vvii

      ZZZZ


  99..1144..  RReemmaarrqquueess ffiinnaalleess

  Ce tutoriel tait prvu pour vous introduire quelques unes des
  possibilits de vvii que vous pouvez galement retrouver dans le manuel
  vvii de votre systme ou qui ne sont pas mentionnes dans ce manuel (de
  nombreux systmes ont des manuels de qualit trs varie).

  Vous ne serez pas un expert vvii aprs la lecture de ce tutoriel, mais
  vous aurez une bonne apprciation des possibilits de vvii. Seul le
  temps et l'effort peuvent vous faire devenir un expert vvii. Mais
  l'efficacit et l'universalit de vvii rend cet effort payant dans le
  long terme.

  Vous pouvez avoir dcid que vous dtestez vvii. Trs bien ! Mais prenez
  garde, vvii demeure l'diteur de texte standard sous UNIX - le seul
  diteur sur lequel vous pouvez compter pour tre disponible sous tout
  systme UNIX que vous utiliserez - donc mme si vous prfrez utiliser
  quelque chose d'autre dans la vie courante, vous seriez avis de
  connatre le minimum  propos de vvii qui est couvert dans ce tutoriel.


  1100..  CCaarrttee ddee rrffrreennccee VViiMM





  1100..11..  ttaattss VVii

  Vi a 3 modes :

  1. _m_o_d_e _c_o_m_m_a_n_d_e - tat normal et initial ; les autres reviennent ici
     (utilisez EESSCC pour stopper une commande partiellement tape).

  2. _m_o_d_e _d_'_e_n_t_r__e - Atteint par diffrentes commandes aa ii AA II oo OO cc CC ss
     SS RR  et termin par EESSCC ou anomalement par interruption.

  3. _m_o_d_e _l_i_g_n_e - C--d attendant une entre aprs une commande :: , // ,
     ?? ou un !!  (termin par CCRR, stopp par CCTTRRLL--cc). CCTTRRLL est la touche
     de contrle : CCTTRRLL--cc signifie   control c .


  1100..22..  CCoommmmaannddeess SShheellll


  1. TTEERRMM== _c_o_d_e Place le nom de code de votre terminal dans la variable
     TTEERRMM.

  2. eexxppoorrtt TTEERRMM Transporte la valeur de TTEERRMM (le code du terminal) vers
     tout programme UNIX dpendant du terminal.

  3. ttppuutt iinniitt Initialise le terminal pour qu'il fonctionne proprement
     avec divers programmes UNIX.

  4. vvii  _f_i_c_h_i_e_r Accde  l'diteur vvii afin de pouvoir diter le fichier
     spcifi.

  5. vvii  _f_i_c_h_i_e_r_1 _f_i_c_h_i_e_r_2 _f_i_c_h_i_e_r_3 Rentre trois fichiers dans le tampon
     vvii  diter. Ces fichiers sont _f_i_c_h_i_e_r_1_, _f_i_c_h_i_e_r_2, et _f_i_c_h_i_e_r_3.

  6. vviieeww  _f_i_c_h_i_e_r Invoque l'diteur vi sur le _f_i_c_h_i_e_r en mode lecture.

  7. vvii --RR  _f_i_c_h_i_e_r Invoque l'diteur vi sur le _f_i_c_h_i_e_r en mode lecture.

  8. vvii --rr  _f_i_c_h_i_e_r Rcupre le _f_i_c_h_i_e_r et les ditions rcentes aprs
     le crash du systme.


  1100..33..  AAccttiivveerr lleess ooppttiioonnss


  1. ::sseett _o_p_t_i_o_n Active l'_o_p_t_i_o_n.

  2. ::sseett _o_p_t_i_o_n_=_v_a_l_e_u_r Assigne la _v_a_l_u_e  l'_o_p_t_i_o_n.

  3. ::sseett nnoo _o_p_t_i_o_n Dsactive l'_o_p_t_i_o_n.

  4. ::sseett  Affiche les options actives par l'utilisateur.

  5. ::sseett aallll Affiche la liste de toutes les options,  la fois les
     options par dfaut et celles actives par l'utilisateur.

  6. ::sseett  _o_p_t_i_o_n? Affiche les valeurs de l'_o_p_t_i_o_n.


  1100..44..  NNoottaattiioonnss uuttiilliisseess

  Notations :

  1. CCTTRRLL--cc CCTTRRLL est la touche de contrle : CCTTRRLL--cc signifie  control c
      ;


  2. CCRR est le retour chariot (touche Entre).


  1100..55..  IInntteerrrroommpprree,, aannnnuulleerr


    EESSCC Arrte l'insertion ou une commande incomplte ;

    CCTTRRLL--?? CCTTRRLL est la touche de contrle : CCTTRRLL--?? signifie  control ?
       supprime ou interrompt des interruptions ;

    CCTTRRLL--ll raffiche/rafrachit l'cran si ctrl-? l'a malmen.


  1100..66..  MMaanniippuullaattiioonn ddee ffiicchhiieerr


    ZZZZ Sauve le fichier et sort de vi.

    ::wwqq Sauve le fichier et sort de vi.

    ::ww crit le fichier courant.

    ::ww!! Force l'criture du fichier courant, si le fichier est en
     lecture seule.

    ::ww_n_o_m crit dans le fichier _n_o_m.

    ::qq Sort de vi.

    ::qq!! Force la sortie de vi (annule les changements).

    ::ee nnaammee dite le fichier _n_o_m.

    ::ee!! Rdite, en annulant les changements.

    ::ee ++ nnaammee dite le fichier _n_o_m, en partant de la fin.

    ::ee ++ nn dite en partant de la ligne _n.

    ::ee ## dite un fichier alternatif.

    ::nn dite le fichier suivant de la _l_i_s_t_e _d_e_s _a_r_g_u_m_e_n_t_s.

    ::aarrggss Liste les fichiers de la liste actuelle.

    ::rreeww Rembobine la liste des fichiers et dite le premier.

    ::nn aarrggss Spcifie une nouvelle liste des arguments.

    ::ff  Affiche le fichier actuel et la ligne.

    CCTTRRLL--GG Synonyme de :f, affiche le fichier actuel et la ligne.

    ::ttaa ttaagg  Pour marquer l'entre du fichier par _t_a_g.

    CCTTRRLL--]]  :ta, le mot suivant est tag.


  1100..77..  MMoouuvveemmeenntt


    FFllcchheess Dplace le curseur.

    CCTTRRLL--dd Descend d'une demi-page.

    CCTTRRLL--uu Monte d'une demi page.

    CCTTRRLL--ff Descend d'une page entire.

    CCTTRRLL--bb Monte d'une page entire.

    ::00 Dplacement au dbut du fichier.

    ::nn Dplacement  la ligne numro n.

    ::$$ Dplacement  la fin du fichier.

    00 Dplacement au dbut de la ligne.

    ^^ Dplacement au premier caractre non-blanc.

    $$ Dplacement au dbut de la ligne.

    CCRR Dplacement au dbut de la ligne suivante.

    -- Dplacement au dbut de la ligne prcdente.

    %% Trouve le crochet correspondant.

    GG  Va  la ligne (dfaut  la dernire ligne).

    ]]]]  section/fonction suivante.

    [[[[  section/fonction prcdente.


  1100..88..  PPoossiittiioonnnneemmeenntt eenn lliiggnnee


    HH  Premire ligne de l'cran.

    LL  Dernire ligne de l'cran.

    MM  Ligne du milieu de l'cran.

    ++  Ligne suivante, sur le premier non-blanc.

    --  Ligne prcdente, sur le premier non-blanc.

    CCRR  Entre, pareil que +.

    jj  Ligne suivante, mme colonne.

    kk  Ligne prcdente, mme colonne.


  1100..99..  PPoossiittiioonnnneemmeenntt ddeess ccaarraaccttrreess


    00  Dbut de la ligne.

    $$  Fin de la ligne.

    hh  Avance.

    ll  Recule.

    SSPPAACCEE  Pareil que l.

    ffxx  Trouve x en avant.

    FFxx  Trouve x en arrire.

    ;;  Rpte le dernier f F.

    ,,  Inverse de ; .

    ||  Vers la colonne spcifie.

    %%  Trouve le { ou } correspondant.


  1100..1100..  MMoottss,, pphhrraasseess,, ppaarraaggrraapphheess


    ww  Mot en avant.

    bb  Mot en arrire.

    ee  Fin du mot.

    ))  Phrase suivante.

    ((  Phrase prcdente.

    }}  Paragraphe suivant.

    {{  Paragraphe prcdent.

    WW  Mot dlimit par du blanc.

    BB  Retour d'un mot blanc.

    EE  Fin d'un mot blanc.


  1100..1111..  MMaarrqquuaaggee eett rreettoouurr


    ```` (taper deux fois la touche `) Contexte prcdent.

    .nr bi 1

     mmxx Marque la position avec la lettre x.

    ``xx (touche ` et lettre x) Va  la marque x.

  


  1100..1122..  CCoorrrreeccttiioonnss aauu ccoouurrss ddee ll''iinnsseerrttiioonn


    CCTTRRLL--hh Efface le dernier caractre.

    CCTTRRLL--ww Efface le dernier mot.

    eerraassee  Taper la touche DELETE, pareil que CTRL-h.

    kkiillll  Votre touche kill, efface l'entre de la ligne.

    \\  chappement de CTRL-h, efface et kill.

    EESSCC  Stoppe l'insertion, retourne en commande.

    CCTTRRLL--??  Interrompt, termine l'insertion.

    CCTTRRLL--dd  Retour de tabulation sur un _a_u_t_o_i_n_d_e_n_t.

    CCTTRRLL--vv  Affiche un caractre non affichable.


  1100..1133..  AAjjuusstteerr ll''ccrraann


    CCTTRRLL--ll Efface et redessine.

    CCTTRRLL--rr Redessine, limine les lignes @.

    zz--CCRR Redessine avec la ligne courante en haut.

    zz-- Redessine, avec la ligne courante au bas de la fentre.

    zz.. Redessine, avec la ligne courante au centre de la fentre.

    //ppaatt//zz-- Ligne contenant _p_a_t en bas.

    ttnn Utilise une fentre de n lignes.

    CCTTRRLL--ee Descend la fentre d'une ligne.

    CCTTRRLL--yy Remonte la fentre d'une ligne.


  1100..1144..  EEffffaacceerr


    xx Efface le caractre sous le curseur.

    XX Efface le caractre avant le curseur.

    DD Efface jusqu' la fin de la ligne.

    dd^^ Efface jusqu'au dbut de la ligne.

    dddd Efface la ligne.

    nndddd Efface _n lignes en commenant  la ligne actuelle.

    ddnnww Efface _n mots en partant du curseur.


  1100..1155..  IInnssrreerr,, cchhaannggeerr


    ii Passe en mode d'insertion avant le curseur.

    II Passe en mode d'insertion avant le premier caractre non-blanc.

    aa Passe en mode d'insertion aprs le curseur.

    AA Passe en mode d'insertion aprs la fin de la ligne.

    oo Ouvre une nouvelle ligne en dessous de la ligne courante et passe
     en mode d'insertion.

    OO Ouvre une nouvelle ligne au dessus de la ligne courante et passe
     en mode d'insertion.

    rr Remplace le caractre en dessous du curseur (ne passe PAS en mode
     d'insertion).


    RR Entre en mode d'insertion en remplaant les caractres.

    CC shift-c. Change le reste de la ligne.

    DD shift-d. Efface le reste de la ligne.

    ss Substitue des caractres.

    SS Substitue des lignes.

    JJ Joint les lignes.


  1100..1166..  CCooppiieerr eett ccoolllleerr

  Le tampon de copie est rempli par _T_O_U_T_E commande d'effacement, ou
  explicitement par YY et yyyy.

    YY Copie la ligne courante dans le tampon.

    _nyy Copie _n lignes en partant de la ligne actuelle dans le tampon.

    pp Colle le tampon aprs le curseur (ou sous la ligne actuelle).

    PP Colle le tampon avant le curseur (ou avant la ligne actuelle).

    ""_xp  Colle  partir du buffer x.

    ""_xy  Copie dans le tampon x.

    ""_xd  Efface dans le tampon x.


  1100..1177..  OOpprraatteeuurrss ((uuttiilliisseerr ddeess ddoouubblleess ppoouurr aaggiirr ssuurr lleess lliiggnneess
  ccoommpplltteess))


    dd  Effacer.

    cc  Changer.

    <<  Dplacement gauche.

    >>  Dplacement droit.

    !!  Filtrer au travers de la commande.

    ==  Indenter pour LISP.

    yy  Copier le texte dans le tampon.


  1100..1188..  CChheerrcchheerr eett rreemmppllaacceerr


    //_t_e_x_t_e Cherche en avant pour _t_e_x_t_e.

    ??_t_e_x_t_e Cherche en arrire pour _t_e_x_t_e.

    nn Rpte la dernire recherche dans la mme direction.

    NN Rpte la dernire recherche dans la direction inverse.

    // Rpte la dernire recherche en avant.


    ?? Rpte la dernire recherche en arrire.

    [[ aaddddrr ]] ss//ffrroomm//ttoo// [[ gg ]]  Cherche une occurence de _f_r_o_m et
     remplace par _t_o dans la ligne actuelle, ou dans le bloc.  _a_d_d_r
     (deux numros de lignes spars par une commande ; 1,$ est le
     fichier entier) remplace une occurence par ligne, ou toutes les
     occurences si _g est spcifi.  Par exemple, :3,20s/unmot/unautre/g
     remplacera "unmot" par "unautre" de la ligne 3  la ligne 20. 'g'
     est global et signifie que toutes les occurences de "unmot" seront
     remplaces.


  1100..1199..  GGnnrraall


    ::sshh Donne un shell ( quitter avec CTRL-d).

    ::!!_c_o_m_m_a_n_d_e Lance un shell pour excuter _c_o_m_m_a_n_d_e.

    ::sseett nnuummbbeerr Active la numrotation des lignes.

    ::sseett nnoonnuummbbeerr Dsactive la numrotation des lignes.


  1100..2200..  CCoommmmaannddeess dd''ddiittiioonn ddee lliiggnnee


    :: Prvient vvii que les prochaines commandes seront des commandes
     pour l'diteur de ligne.

    ::sshh Retourne temporairement au shell pour excuter quelques
     commandes shell sans quitter vvii.

    CCTTRRLL--dd Sort du shell temporaire et retourne sous vvii afin de pouvoir
     diter la fentre actuelle.

    ::_n Va  la _nme ligne du tampon.

    ::_x_,_zww _f_i_c_h_i_e_r crit les lignes _x  _z dans un nouveau fichier
     appell _f_i_c_h_i_e_r.

    ::$$ Dplace le curseur au dbut de la dernire ligne du tampon.

    ::..,,$$dd Efface toutes les lignes de la ligne actuelle  la dernire
     ligne.

    ::rr _f_i_c_h_i_e_r Insre le contenu du fichier _f_i_c_h_i_e_r sous la ligne
     actuelle du tampon.

    ::ss_/_t_e_x_t_e_/_a_u_t_r_e___t_e_x_t_e_/ Remplace la premire apparition de _t_e_x_t_e sur
     la ligne actuelle par _a_u_t_r_e___t_e_x_t_e.

    ::ss_/_t_e_x_t_e_/_a_u_t_r_e___t_e_x_t_e_/_g Remplace toutes les apparitions de _t_e_x_t_e sur
     la ligne actuelle par _a_u_t_r_e___t_e_x_t_e.

    ::gg_/_t_e_x_t_e_/_s_/_/_a_u_t_r_e___t_e_x_t_e_/_g Change toutes les apparitions de _t_e_x_t_e
     dans le tampon par _a_u_t_r_e___t_e_x_t_e.


  1100..2211..  AAuuttrreess ccoommmmaannddeess


    uu Annule le dernier changement.

    UU Restaure la ligne actuelle.

    ~~ Change la casse.

    JJ Joint la ligne actuelle et la ligne suivante.

    .. Rpte la dernire commande de changement de texte.

    CCTTRRLL--gg Montre le nom du fichier et le nombre de lignes.


  1111..  UURRLLss ccoonnnneexxeess

  Les URLs connexes  ViM sont sur :

    C et C++ Beautifer  <http://www.metalab.unc.edu/LDP/HOWTO/C-
     C++Beautifier-HOWTO.html>

    Linux goodies  <http://www.aldev.8m.com> ou sur
     <http://www.aldev.webjump.com>



  1122..  AAuuttrreess ffoorrmmaattss ddee ccee ddooccuummeenntt

  Ce document est publi sous 11 formats diffrents, nommment - DVI,
  Postscript, Latex, Adobe Acrobat PDF, LyX, GNU-info, HTML, RTF(Rich
  Text Format), Plain-text, pages man Unix et SGML.

    Vous pouvez obtenir ce document howto sous la forme d'une archive
     tar en html, dvi, postscript et sgml de :
     <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/other-formats/>

    Le format texte plein est sur :
     <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO>

    Les traductions dans d'autres langages comme franais, allemand,
     espagnol, chinois, japonais sont sur
     <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO>.  Toute aide de votre
     part pour traduire ce document dans d'autres langages est la
     bienvenue.

     Ce document est crit en utilisant un outil nomm  SGML tools 
     qui peut tre obtenu de : <http://www.sgmltools.org>.  Pour
     compiler le source vous obtiendrez les commandes suivantes comme :

    sgml2html Vim-howto.sgml     (pour gnrer un fichier html)

    sgml2rtf Vim-howto.sgml     (pour gnrer un fichier RTF)

    sgml2latex Vim-howto.sgml    (pour gnrer un fichier latex)

  Les documents LaTeX peuvent tre convertis en fichiers PDF en
  produisant simplement une sortie Postscript en utilisant ssggmmll22llaatteexx
  (et dvips) et en utilisant la sortie via la commande Acrobat ddiissttiillll (
  <http://www.adobe.com>) comme suit :












  ______________________________________________________________________
  bash$ man sgml2latex
  bash$ sgml2latex filename.sgml
  bash$ man dvips
  bash$ dvips -o filename.ps filename.dvi
  bash$ distill filename.ps
  bash$ man ghostscript
  bash$ man ps2pdf
  bash$ ps2pdf input.ps output.pdf
  bash$ acroread output.pdf &
  ______________________________________________________________________


  Ou vous pouvez utiliser la commande Ghostscript ppss22ppddff. ps2pdf est un
  clone pour la majorit des fonctionnalits du produit Adobe's Acrobat
  Distiller : il convertit les fichiers PostScript en fichiers Portable
  Document Format (PDF).  ppss22ppddff est implment sous la forme d'un
  fichier script de commandes trs petit qui invoque Ghostscript, en
  slectionnant un priphrique de sortie spcial nomm ppddffwwrriittee. Afin
  d'utiliser ps2pdf, le priphrique pdfwrite doit tre inclus dans le
  makefile lors de la compilation Ghostscript ; voyez la documentation
  sur la compilation de Ghostscript pour les dtails.

  Ce document se trouve sur :

    <http://metalab.unc.edu/LDP/HOWTO/ViM-HOWTO.html>

  Vous pouvez aussi trouver ce document sur les sites miroirs suivants :

    <http://www.caldera.com/LDP/HOWTO/ViM-HOWTO.html>

    <http://www.WGS.com/LDP/HOWTO/ViM-HOWTO.html>

    <http://www.cc.gatech.edu/linux/LDP/HOWTO/ViM-HOWTO.html>

    <http://www.redhat.com/linux-info/ldp/HOWTO/ViM-HOWTO.html>

    D'autres sites miroirs prs de vous ( l'chelle du rseau) peuvent
     se trouver sur <http://metalab.unc.edu/LDP/mirrors.html>,
     slectionnez un site et allez voir le fichier /LDP/HOWTO/Vim-
     HOWTO.html.

  Afin de voir un document au format dvi, utilisez le programme xdvi. Le
  programme xdvi se trouve dans le paquetage tetex-xdvi*.rpm de la
  Redhat Linux qui peut se trouver dans ControlPanel | Applications |
  Publishing | TeX.

  Pour lire un document dvi utilisez la commande :



               xdvi -geometry 80x90 howto.dvi
               man xdvi




  Et redimmensionnez la fentre avec une souris. Voyez la page man de
  xdvi. Pour naviguer utilisez les flches, les touches page up, down,
  ou galement les lettres 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' pour
  monter, descendre, centrer, page suivante, page prcdente, etc. Pour
  supprimer le menu expert appuyez sur 'x'.

  Vous pouvez lire le fichier postscript avec le programme 'gv'
  (ghostview) ou Le programme ghostscript est dans le paquetage
  ghostscript*.rpm et le programme gv dans gv*.rpm, qui se trouvent sous
  ControlPanel | Applications | Graphics. Le programme gv est beaucoup
  plus agrable  utiliser que ghostscript.

  Ghostscript et gv sont aussi disponibles sous d'autres plateformes
  comme OS/2, Windows 95 et NT. Vous pouvez donc lire ce document sur
  toutes ces plateformes.


    Prenez ghostscript pour Windows 95, OS/2, et tous les OS sur
     <http://www.cs.wisc.edu/~ghost>

  Pour lire le document postscript utilisez la commande :



               gv howto.ps
               ghostscript howto.ps




  Vous pouvez lire le document en html en utilisant Netscape Navigator,
  Microsoft Internet explorer, Redhat Baron ou tout autre des 10
  navigateurs web.

  Vous pouvez lire la sortie LaTeX ou LyX en utilisant LyX ou vim.


  1133..  NNoottiiccee ddee CCooppyyrriigghhtt

  Le Copyright est GNU/GPL comme pour le LDP (Linux Documentation
  project). Le LDP est un projet GNU/GPL.  Les restrictions
  additionnelles sont - vous devez conserver le nom de l'auteur,
  l'adresse mail et cette notice de Copyright sur toutes les copies.  Si
  vous effectuez un changement ou une addition  ce document, vous devez
  notifier tous les auteurs de ce document.






























