HOWTO de l'�diteur Vim (Vi am�lior�, avec coloration syntax�
 ique)
 Al Dev (Alavoor Vasudevan) [email protected];
 Version fran�aise par Arnaud Launay, [email protected]
 v1.0, 14 Octobre 1999

 Ce document est un guide pour configurer tr�s rapidement l'�diteur Vim
 sur les syst�mes Linux ou Unix. Les informations pr�sent�es ici aug�
 menteront la productivit� du programmeur puisque l'�diteur Vim sup�
 porte la coloration syntaxique et les fontes grasses qui augmentent la
 �lisibilit� du code.  Les informations de ce document s'appliquent �
 tous les syst�mes d'exploitation sous lesquels Vim fonctionne,
 c'est-�-dire Windows 95/NT, et toutes les versions d'Unix telles que
 Linux, FreeBSD, Solaris, HPUX, AIX, SCO, Sinix, BSD, SCO, etc.
 ______________________________________________________________________

 Table des mati�res


 1. Introduction

 2. Configurez les fichiers d'initialisation de vim

    2.1 Param�tres du Xdefaults
    2.2 Fichier vimrc d'exemple
    2.3 Fichier gvimrc d'exemple

 3. Fichier d'initialisation de la coloration syntaxique

 4. Usage de Vim

 5. Aide de Vim en ligne

 6. Pages web de Vim et liens Vim

 7. Autres formats de ce document



 ______________________________________________________________________

 11..  IInnttrroodduuccttiioonn

 L'�diteur Vim signifie �Vi Improved� (Vi am�lior�). Vi est l'�diteur
 le plus populaire et le plus puissant du monde Unix. Un bon �diteur
 augmentera la productivit� du programmeur. Vim supporte la coloration
 syntaxique du code ainsi que diff�rentes fontes, normales ou grasses.

 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 | 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 fl�ch�es, page up/down. Voyez aussi �man less�.

 Pour les autres versions d'unix, r�cup�rez les fichiers sources:

 ______________________________________________________________________

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



 Pour Windows 95/NT, r�cup�rez les fichiers zip et installez-les en
 cliquant sur setup.


 22..  CCoonnffiigguurreezz lleess ffiicchhiieerrss dd''iinniittiiaalliissaattiioonn ddee vviimm

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

 ______________________________________________________________________
 cd $HOME
 cp /usr/doc/vim-common-5.3/gvimrc_example  ~/.gvimrc
 cp /usr/doc/vim-common-5.3/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=9x15bold
 set guifont=8x13bold
 "set guifont=7x14bold
 "set guifont=7x13bold
 ______________________________________________________________________


 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 d�caleront les lignes en tapant les commandes vi ">>" ou
 "<<". R�f�rez vous au tutorial de Vim pour plus de d�tails.  Pour met�
 tre en place tabstop et shiftwidth :

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

 22..11..  PPaarraamm��ttrreess dduu XXddeeffaauullttss

 Vous pouvez configurer quelques unes des propri�t�s de Vim dans le
 fichier Xdefaults.

  AATTTTEENNTTIIOONN:: _N_e _m_e_t_t_e_z _p_a_s VViimm**ggeeoommeettrryy, il coincerait les menu gvim,
 utilisez plut�t VViimm..ggeeoommeettrryy � 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 ast�risque 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
 ______________________________________________________________________


 Vous devrez relancer le gestionnaire X pour que vos changements soient
 effectifs.

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

 ______________________________________________________________________
         gvim $HOME/.gvimrc
 ______________________________________________________________________




 22..22..  FFiicchhiieerr vviimmrrcc dd''eexxeemmppllee

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






















 " Un exemple de fichier vimrc.
 "
 " Mainteneur: Bram Moolenaar <[email protected]>
 " Derni�res 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 d�fauts 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'entr�es 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 s�lectionn� 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 derni�re cha�ne recherch�e.
 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
  " caract�res
  autocmd BufRead *.txt set tw=78

  augroup cprog
   " Supprime toutes les autocommandes cprog
   au!

   " Lors du d�but d'�dition d'un fichier :
   "   Pour les fichiers C et C++ active le formatage des
   "   commentaires et l'indentation C
   "   Pour les autres fichiers, d�sactive les.
   "   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 gzipp�s
   " 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")

   " Apr�s la lecture du fichier compress� : D�compresse 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

   " Apr�s 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� : D�compresser 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 d�sactiv�, car il change la liste de sauts. On ne peut utiliser
  " CTRL-O pour revenir en arri�re dans les fichiers pr�c�dents plus d'une fois.
  if 0
   " Lors de l'�dition d'un fichier, saute toujours � la derni�re position du curseur.
   " Ceci doit se trouver apr�s les commandes de d�compression.
    autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal `\"" | endif
  endif

 endif " has("autocmd")





 22..33..  FFiicchhiieerr ggvviimmrrcc dd''eexxeemmppllee

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















 ______________________________________________________________________
 " Un exemple de fichier gvimrc.
 " Ces commandes sont ex�cut�es lors du lancement de l'interface graphique.
 "
 " Mainteneur :        Bram Moolenaar <[email protected]>
 " Derni�res modifications : 2 F�v 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 ult�rieure.
 if version >= 500

   " J'aime avoir des cha�nes �clair�es dans les commentaires C
   let c_comment_strings=1

   " Active la coloration syntaxique.
   syntax on

   " Active la coloration de la cha�ne recherch�e.
   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 derni�re ligne est en gris sombre
   " Le curseur est gris
   " Les constantes ne sont pas soulign�es mais ont un fond l�g�rement 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
 ______________________________________________________________________







 33..  FFiicchhiieerr dd''iinniittiiaalliissaattiioonn ddee llaa ccoolloorraattiioonn ssyynnttaaxxiiqquuee

 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 diff�rents !


 44..  UUssaaggee ddee VViimm

 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
 ______________________________________________________________________




 55..  AAiiddee ddee VViimm eenn lliiggnnee

 Voyez les pages de manuel en ligne. Au prompt unix, tapez 'man vim' et
 'man gvim'.

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


 66..  PPaaggeess wweebb ddee VViimm eett lliieennss VViimm

 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 r�f�rence 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 conserv�es 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>.


 77..  AAuuttrreess ffoorrmmaattss ddee ccee ddooccuummeenntt

 Ce document est publi� sous 10 formats diff�rents, nomm�ment - DVI,
 Postscript, Latex, 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://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/> ou
    <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/other-formats/>

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

 �  Les traductions dans d'autres langages comme fran�ais, allemand,
    espagnol, chinois, japonais sont sur
    <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO> ou
    <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.xs4all.nl/~cg/sgmltools/> Pour
    compiler le source vous obtiendrez les commandes suivantes comme :

 �  sgml2html vim-howto.sgml     (pour g�n�rer un fichier html)

 �  sgml2rtf  vim-howto.sgml     (pour g�n�rer un fichier RTF)

 �  sgml2latex vim-howto.sgml    (pour g�n�rer un fichier latex)

 Ce document se trouve sur :

 �  <http://sunsite.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 pr�s de vous (� l'�chelle du r�seau) peuvent
    se trouver sur <http://sunsite.unc.edu/LDP/hmirrors.html>
    s�lectionnez 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
              Et redimmensionnez la fen�tre avec une souris. Voyez la page man de
              xdvi. Pour naviguer utilisez les fl�ches, les touches page up, down,
              ou �galement les lettres 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' pour
              monter, descendre, centrer, page suivante, page pr�c�dente, 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 agr�able � utiliser que ghostscript. Ghostscript et gv sont aussi
 disponibles sous d'autres plateformes comme OS/2, Windows 95 et NT.


              Pour lire le document postscript utilisez la commande :
                      gv howto.ps

              Pour utiliser ghostscript lancez :
                      ghostscript howto.ps




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

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