HOWTO de l'éditeur Vim (Vi amélioré, avec coloration syntax­ ique) Al Dev (Alavoor Vasudevan) alavoor@yahoo.com; Version française par Arnaud Launay, asl@launay.org 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 " 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 :let current_reg = @"gvdi=current_reg " 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(""), expand(":r")) == 0 execute "!" . a:cmd . " :r" endif endfun " Avant l'ajout au fichier compressé : Décompresser le fichier avec "cmd" fun! GZIP_appre(cmd) execute "!" . a:cmd . " " call rename(expand(":r"), expand("")) 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 " 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 map! " 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 " . winhelpfile "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 , et son site miroir aux US est sur . La FAQ Vim est sur et sur . La page Vim d'Eli se trouve sur . La page des amoureux de Vi sur . Le guide de référence sur Vim sur . Les listes de diffusion Vim sont sur et . Les archives des listes sont conservées sur: · · · Les macros Vim sont sur . 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 : ou · Le format texte plein est sur : ou · Les traductions dans d'autres langages comme français, allemand, espagnol, chinois, japonais sont sur ou 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 : 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 : · Vous pouvez aussi trouver ce document sur les sites miroirs suivants : · · · · · D'autres sites miroirs près de vous (à l'échelle du réseau) peuvent se trouver sur 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.