VI est un éditeur robuste et très puissant présent en standard sous UNIX. Un clone plus récent, VIM, existe sur la majorité des plateformes.
Mis à jour le 30/11/2004
Pourquoi utiliser VI
VI est un éditeur présent en standard sur les systèmes d’exploitations UNIX. On peut également installer un des ses clones sous WinXP. Celui que j’utilise est VIM. VIM est livré en standard en mode console sous Linux et Solaris et possède des caractéristiques intéressantes comme la coloration syntaxique, un mode GUI (gvim), etc...
VI existe depuis plus de 30 ans, et comme la majorité des outils sous Unix, apprendre VI reste un investissement rentable sur le long terme.
Utilisation de VI
Vous trouverez ci dessous pour mémoires quelques commandes les plus usuelles :
0/$ début/fin de ligne
^ premier caractère significatif de la ligne courante
j/k ligne suivante/précédente
+/- ligne suivante/précédente, premier caractère significatif
G fin de fichier
NG va à la ligne n
expr recherche l'occurrence expr dans le texte<br>
?expr recherche l'occurrence expr dans le texte vers le début, en arrière<br>
n/N occurrence suivante/précédente
w/b avance/recule d'un mot
W/B idem en ignorant la ponctuation
fC/FC va au prochain caractère C vers la gauche/droite
tC/TC va avant/après le caractère C
ma marque la ligne (repère a)
‘a va à la ligne marquée par le repère a
{/} avance/recule d'un paragraphe (séparateur par défaut : ligne vide)
% se place sur la prochaine parenthèse/crochet/accolade ), ] ou }
dG efface du curseur jusqu'à la fin du fichier
d% si on est sur une accolade ouvrante, efface jusqu'à l'accolade fermante
d^ supprime les espaces du début de la ligne au premier caractère
yy copie la ligne dans le tampon (buffer)
y$ copie dans le tampon jusqu'à la fin de la ligne
Les commandes ex :
Substitution :
:1,$s/toto/tata/gc remplace dans tout le document toto par tata en demandant confirmation<br>
:%s/\//\./g remplace dans tout le document / par .
:ab bo bonjour substitut la chaine bo par la chaine bonjour
Générales:
<code>
set list Visualisation des marques invisibles (\t, \n, ...)
set nu Visualisation des numéros de lignes<br>
set all Visualisation des variables de VI<br>
On basculera dans le mode précédent un préfixant la commande avec « no »:
<code>
set nonu)
Les macros :
Before you can start creating your own maps, you need to know the keys not used in command mode that are available for user-defined commands :
Letters :
g K q V v
Control keys :
^A ^K ^O ^T ^W ^X
Symbols :
_ * \ = (Note : The = is used by vi if Lisp mode is set.)
Aide sous VIM :
:h ouvre une fenêtre d'aide
:q ferme la fenêtre
^T revient en arrière dans l'aide
Commandes diverses et utiles :
Remplacer dans plusieurs fichiers une occurrence par une autre :
vim -c '%s/toto/tata/g' -c 'wq!' *.ext
Configuration de VIM :
La configuration se fait dans les fichiers .vimrc ou _vimrc du répertoire utilisateur.
Faire de même si vous désirez utiliser la version gvim sous X11 avec le fichier gvimrc_exemple.vim (voir la description en entête de ces fichiers).
Habituellement, j’utilise les commandes suivantes en plus du mode par défaut :
set nobackup
set lines=45 columns=82
set guifont=Courier_New:h9:cANSI
autocmd BufNewFile,BufRead *.vb set ft=vbnet
" remplace la tabulation par des espaces sauf dans les Makefiles
set expandtab
au BufNewFile,BufReadPost Makefile set noexpandtab
Bug du mode vimdiff sous Windows :
Le mode vimdiff est utilisé pour visualiser les différences entre 2 fichiers. Sous Windows et dans la dernière version de gvim 7.4, ce mode ne fonctionne pas et affiche l’erreur suivante :
Cannot read or write temp files
ou
impossible de lire ou écrire des fichiers temporaires
Editer le fichier de configuration _vimrc, et dans la fonction diffexpr=MyDiff() remplacer la ligne :
if &sh =~ '\<cmd'
par :
if &sh =~ "\<cmd"
Lorsque l’on utilise VI depuis une console (cygwin ou TeraTerm sur PC) et que les touches de déplacement ne fonctionnent pas correctement, mettre la variable TERM à vt100.
Lorsque la taille de la console est différente de 25 lignes par 80 colonnes, taper la commande :
eval `resize`.
Pour utiliser sous cygwin indifféremment la version console ou la version Windows de VIM, mettre la fonction suivante dans votre .bashrc
:
gvim()
{
export VIM=c:\\vim
/cygdrive/c/vim/Program\ files/vim70/gvim $1 &
export VIM=/usr/share/vim
}
Pour utiliser la coloration sous cygwin, définir la variable VIM par :
$ export VIM=/usr/share/local/vim
et créer le fichier .vimrc dans votre répertoire utilisateur
Liens utiles
Bonjour, lorsaque j utilise cygwin, je n arrive pas a creer de nouveaux fichiers texte car il ne reconnait pas vi ou vim. merci de m’aider.
Vous pouvez me repondre a matahi_2000@yahoo.com.
merci
Salut,j’ai le meme probleme,on me dit que la commande vi est not found !!
merci
Par defaut, l’installation de vim n’est pas selectionnée
Il faut choisir d’installer VI dans le setup, catégorie Editeurs
Si pour certains outils comme cvs, l’installation de vim est necessaire sous cygwin, je prefere utiliser la version native Windows gvim :
http://www.vim.org/download.php#pc
ftp://ftp.vim.org/pub/vim/pc/gvim64.exe
Pour l’utiliser sous cygwin, il suffit de rajouter le chemin a gvim dans le path ou de faire un alias.