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.