03/12/2023 04:19 vim [Wiki ubuntu-fr]
éditeur de texte console programmation IDE vim
Vi IMproved
Vim est un éditeur de texte pour le terminal sous GNU/Linux. Il a une stabilité exemplaire et ne cesse d'être amélioré. Malgré son austérité, c'est un outil
très puissant qui n'a rien à envier aux éditeurs graphiques comme GEdit, Kate ou Mousepad. Il est très apprécié des développeurs pour toutes ses fonctions
qui en font un très bon IDE () (coloration syntaxique de 200 langages, complétion automatique, comparaison de fichiers, recherche évoluée, …) et est
extensible par des scripts.
Contrairement à la plupart des éditeurs, Vim est un éditeur modal1). Selon le mode où vous vous trouvez, les touches auront des actions différentes.
Vim est un "charity-ware" : vous êtes encouragés à faire une donation aux orphelins d'Ouganda (voyez : ":help uganda").
1. Installation
Par défaut, votre système a une version basique de vim, procurée par le paquet vim-tiny, mais n'offrant pas toutes les possibilités de cet éditeur.
Commencez par installer le paquet vim (apt://vim) ou vim-gnome (apt://vim-gnome). Cette version vim-gnome a l'avantage de disposer des options pour
utiliser le presse-papier 2)
Si vous souhaitez une interface graphique pour utiliser Vim, reportez-vous à la page gvim.
2. Utilisation
2.1 Tutoriel
L'installation de vim fournit un programme spécifique pour l'apprentissage de vim. Il faut compter environ 30 minutes pour faire le tour de ce tutoriel, mais
cela est très utile pour vous familiariser avec les commandes les plus courantes de vim.
https://doc.ubuntu-fr.org/vim 1/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
Pour le lancer il vous suffit d'aller dans un terminal et de taper :
vimtutor
(ou pour la version graphique, lancez l'application gvimtutor avec la combinaison de touches ALT + F2 ou dans le terminal)
2.2 Principe de base
Pour créer ou modifier un fichier avec vim il suffit de taper :
vim /chemin/texte
Si le fichier n'existe pas il sera créé à l'enregistrement.
Le fichier s'affiche. Vous êtes dans le mode commande3), c'est à dire que vous pouvez déplacer le curseur comme vous le souhaitez avec les touches h,j,k,l
ou avec les flèches ←↓↑→ et entrer des commandes pour agir sur le texte. Si vous tapez un nombre avant une commande, elle se répétera d'autant.
Pour accéder au mode insertion4) afin de modifier ou d'insérer du texte, il suffit d'appuyer sur « i » dans le mode commande. Appuyer sur la touche « Échap
» pour en sortir et repasser en mode commande.
2.2.1 Commandes de base:
Exemples Action
i Passer dans le mode insertion
A Ajouter en fin de ligne
:q Quitter
:q! Quitter sans enregistrer
:w Enregistrer le fichier
:wq Enregistrer et quitter
:x Enregistrer (seulement en cas de modification) et quitter
:set paste Passer en mode "collage"
https://doc.ubuntu-fr.org/vim 2/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
2.2.2 Commandes d'édition:
Exemples Action
u Annuler la dernière opération
<control>-r Rétablir la dernière opération annulée
. Répéter la dernière opération d'édition
yy Copier la ligne (4yy = 4 lignes)
dd Couper la ligne (4dd = 4 lignes)
p Coller après (P = insérer avant)
x Effacer le caractère
dw Effacer le texte jusqu'à la fin du mot
diw Effacer le mot sous le curseur
2.2.3 Recherche / remplacement:
Exemples Action
/ Rechercher du texte
n Rechercher l'occurence suivante
N Rechercher l'occurence précédente
cw Remplacer le texte jusqu'à la fin du mot
ciw Remplacer le mot
C Remplacer jusqu'en fin de ligne
. Répéter la dernière opération d'édition
:%s/A/B/g Remplacer tous (g) les A par des B
https://doc.ubuntu-fr.org/vim 3/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
2.2.4 Fenêtrage:
Exemples Action
<control-w>-s Diviser horizontalement
<control-w>-v Diviser verticalement
<control-w>-w Passer à la fenêtre suivante
<control-w>-n Ouvrir un fichier vierge dans une nouvelle fenêtre
: tabnew nom_fichier Ouvrir le fichier nom_fichier dans un onglet
<control-w>-q Fermer la fenêtre
2.2.5 Programmation en C
Vim est interfaçable avec CScope, ce qui permet à l'aide d'une simple touche lors de l'édition d'un fichier source écrit en C:
d'afficher la définition d'une fonction,
de trouver les fonction appelées par cette fonction,
de trouver les fonctions appelant cette fonction
de trouver/remplacer une chaine de caractères ou un expression régulière
de trouver les fichiers incluant le header file indiqué sous le curseur
2.3 Comparaison de fichiers
Vous pouvez comparer le contenu de deux fichiers en lançant :
vimdiff fichier1 fichier2
vimdiff peut-être remplacé par vim -d
Si vous êtes déjà dans vim en édition sur le fichier1:
:vert diffsplit fichier2
si vous ne spécifiez pas vert, le "split" sera horizontal (beaucoup moins pratique).
Ajoutez
https://doc.ubuntu-fr.org/vim 4/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
set diffopt=vertical
dans votre fichier vimrc pour que ce soit par défaut.
2.4 Édition hexadécimale
vim peut servir d'éditeur hexadécimal (https://fr.wikipedia.org/wiki/éditeur hexadécimal) (voir aussi hexedit) : après avoir ouvert votre fichier en mode
binaire (vim -b), tapez
:%!xxd
pour revenir en édition normale
:%!xxd -r
comme pour les autres utilisations (recherche, remplace…), vous pouvez remplacer % par un n° de ligne ou un intervalle
!! Attention a bien éditer et sauvegarder en mode binaire sinon vous risquez de corrompre le fichier avec des auto tab et des conversion de retour a la ligne.
vim -b pour lancer en mode binaire, ou :set binary pour activer le mode une fois vim lancé.
2.5 Terminal
Avec la version 8.1, il est possible d'ouvrir une fenêtre terminal
:terminal
(le mot abrégé term convient), si vous préférez en vertical :
:vert term
Pour sortir:
<Ctrl-D>
ou
https://doc.ubuntu-fr.org/vim 5/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
«exit»
2.6 Macro
Il est possible d'enregistrer des macros associées à une lettre.
Pour démarrer l'enregistrement de la macro, on tape qx pour enregistrer la macro dans un registre x
On saisi ensuite la(les) commande(s) à enregistrer, par exemple un rechercher/remplacer qu'on veut exécuter dans plusieurs fichiers (action qu'on peut
aussi faire avec la commande sed en CLI)
On fini l'enregistrement en tapant q
Pour lancer une macro, il suffit de taper le caractère @ suivi de la lettre correspondant au registre, x dans notre exemple : @x
source 5)
Si vous ne l'utilisez pas et que ça vous gène, vous pouvez désactiver le raccourci dans votre vimrc en y ajoutant 6) :
map q <Nop>
3. Configuration
Pour modifier le comportement de vim, il faut agir sur son fichier de configuration (chaque utilisateur peut avoir le sien). Pour cela créez ou éditez le fichier
~/.vimrc (le fichier vimrc global peut se trouver dans /usr/share/vim/vimrc ).
S'il n'existe pas de fichier .vimrc dans le dossier de l'utilisateur, vim se lance en « compatibilité » avec vi. C'est-à-dire qu'il va charger les
options par défaut de vi, et non pas celles de vim. La simple existence de ce fichier suffit normalement à charger les options par défaut de
vim, mais, par précaution, forcez la désactivation de cette compatibilité (en tout début de fichier, car ça change les options).
Voici quelques paramètres utiles à ajouter dans ce fichier :
Paramètre Action
Désactive la compatibilité avec vi
set nocompatible
https://doc.ubuntu-fr.org/vim 6/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
Paramètre Action
adapte les couleurs pour un fond noir
set background=dark
Active la coloration syntaxique
syntax on
set number
Affiche les numéros de lignes
Indentation toutes les quatre colonnes
set tabstop=4
Conversion des tabulations en espaces
set expandtab
Indentation de quatre colonnes
set shiftwidth=4
Indentation "intelligents"
set smartindent
Conserve l'indentation courante sur les nouvelles lignes
set autoindent
retours arrières intelligents
set backspace=indent,eol,start
set shiftround
Indentation à la marque de Tab la plus proche
Ignore la casse lors de recherche
set ignorecase
https://doc.ubuntu-fr.org/vim 7/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
Paramètre Action
affiche le mode d'édition
set showmode
affiche la position du curseur
set ruler
affiche les commandes incomplète
set showcmd
Ctrl-m maximize la fenetre courrante (:help map)
map <C-m> :resize<CR>
map <C-b> :bNext<CR>
Ctrl-b aller au tampon suivant (:help map)
Si vim ne se souvient pas de la position précédente du curseur lorsque vous réouvrez un fichier, il faut ajouter la ligne suivante dans le fichier ~/.vimrc:
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
confère commande vim :help last-position-jump ou bien en tapant:
grep -A4 last-position-jump /usr/local/share/vim/vim72/doc/eval.txt
Il est également possible de faire ces modifications dans le fichier /etc/vim/vimrc avec les droit administrateur pour qu'elles s'appliquent à tous les
utilisateurs du système.
Un fichier exemple est disponible également /usr/share/vim/vimcurrent/vimrc_example.vim
Si vous avez l'erreur "Sorry, the command is not available in this version: syntax on", vous utilisez surement vim-tiny et non vim "complet".
Pour y remédier, supprimez le paquet vim-tiny et ré-installez le paquet vim
Vous pouvez aussi utiliser la commande suivante et choisir vim.gnome :
https://doc.ubuntu-fr.org/vim 8/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
sudo update-alternatives --config vim
3.1 Vim supporte les souris
Le service gpm7) permet l'utilisation de la souris dans le terminal pour sélectionner, copier et coller. Vérifiez que le paquet gpm (apt://gpm) est installé et
modifiez votre fichier ~/.vimrc comme expliqué plus haut pour y insérer :
set mouse=a
3.2 Thème de coloration syntaxique
Placez le thème dans ~/.vim/colors et activez le thème dans le .vimrc avec la ligne :
colorscheme nom_du_theme
Si vous utilisez vim dans un terminal, il est possible que votre thème ne soit pas utilisé, et qu'il n'y ait pas de coloration syntaxique. Il faut donc forcer les
couleurs en ajoutant dans le .vimrc la ligne suivante :
set t_Co=256
Si votre terminal ne supporte que 88 couleurs :
set t_Co=88
Il est cependant nécessaire que le thème ait été pensé à la fois pour la GUI () et le terminal. Si ce n'est pas le cas du thème que vous avez choisi, le plus
simple est d'utiliser le plugin guicolorscheme (https://www.vim.org/scripts/script.php?script_id=1809).
Nota : les thèmes installés par défaut se trouvent dans le répertoire /usr/share/vim/vimxx/colors ou xx correspond à la version en cours, 74 ou 80 à ce jour
https://doc.ubuntu-fr.org/vim 9/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
4. Extensions, plugins et packages
Il existe de nombreuses extensions à VIM, notamment pour les développeurs, pour ajouter des fonctionnalités telle que l'arborescence du répertoire de
travail, la liste des fonctions/variables, des colorations spécifiques…
Pour lister les plugins installés, dans VIM, tapez la commande:
:scriptnames
4.1 Les plugins
C'est assez simple, ils se composent généralement de deux fichiers, un .vim et un .txt. Le .vim peut simplement être déposé dans
/usr/share/vim/vim80/plugin/,
le .txt dans /usr/share/vim/vim80/doc/
4.2 Les packages
C'est plus compliqué, mais il existe des outils, tel que Pathogen (https://github.com/tpope/vim-pathogen) ou Vundle
(https://github.com/VundleVim/Vundle.vim) pour simplifier leur installation
5. Pour aller plus loin
https://www.vim.org/ (https://www.vim.org/) – Site officiel (en)
Vim book (fichier PDF, anglais) (ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf)
Tuto sur developpez.com (https://arolla.developpez.com/tutoriels/programmation/editeurs-code/dompter-vim-en-trois-temps/)
Apprendre Vim progressivement (https://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/)
Quelques notes de prises en main sur Vim (https://touticphoto.fr/assistance-informatique/30-editeur-de-texte-vim)
Plugin Grammalecte (https://github.com/dpelle/vim-Grammalecte) étendre les fonctionnalités de VIM avec un Correcteur grammatical dédié à la
langue française.
Contributeurs : YoBoY, Mr_Djez, bcag2
https://doc.ubuntu-fr.org/vim 10/11
03/12/2023 04:19 vim [Wiki ubuntu-fr]
1) , 3) , 4)
éditeur modal: possède différents modes de fonctionnement commande, insertion
2) reportez-vous à l'article https://vim-fr.org/index.php/Les_presse-papiers (https://vim-fr.org/index.php/Les_presse-papiers) pour plus de détails sur les
presse-papiers de vim
5) https://vim.fandom.com/wiki/Recording_keys_for_repeated_jobs (https://vim.fandom.com/wiki/Recording_keys_for_repeated_jobs)
6) https://stackoverflow.com/a/28501574/6614155 (https://stackoverflow.com/a/28501574/6614155)
7) gpm : General Purpose Mouse interface https://www.nico.schottelius.org/software/gpm/ (https://www.nico.schottelius.org/software/gpm/)
vim.txt Dernière modification: Le 11/09/2023, 20:05 par jpph
https://doc.ubuntu-fr.org/vim 11/11