Présentation
Que dire de plus si ce n’est que VI ou VIM édite tout ! Il permet de faire de la coloration syntaxique, de la substitution de texte, etc…
C’est bourré de script, c’est modifiable, paramétrabe, adaptable, bref, ça roxe du poney !
Installation
Debian
Sous Debian, pour posséder l’ensemble des fonctionnalités et options de VIM, je vous propose (si vous avez une cinquantaine de Mo de place), de faire :
apt-get install vim-full
De la sorte vous aurez tout de tout !
Windows
Eh oui ! il existe aussi gVim pour Windows ! Le site vim.org informe sur les différents installeurs possibles, parmi eux nous retenons gVim pour Windows .
Comme toujours sous Windows, il suffit de suivre les instructions de l’assistant d’installation.
Mon fichier de configuration
Comme VIM est paramétrable, il possède le fichier ~/.vimrc. S’il n’existe pas créez le et modifiez le à votre guise.
Sous Windows, le fichier de configuration est à créer dans C:\Documents and Settings\Olivier par exemple.
Pour cela, procédez à la manipulation suivante :
- Allez sur votre disque dur système (exemple C:\)
- Allez dans Documents and Settings\nomUtilisateur où nomUtilisateur est à remplacer par votre nom d’utilisateur au sein de Windows
- Faites Fichier > Nouveau > Document texte
- Validez, puis sélectionnez le fichier
- Renommez le fichier en appuyant sur F2, nommez le : _vimrc.
- Validez en appuyant sur entrée
Éditez le fichier avec gVim pour pouvoir l’emplir de la configuration de votre choix.
Voici le maigre fichier de configuration que je possède :
set nocompatible
syntax on "" activation reconnaissance syntaxique
filetype plugin indent on
"" Console blanche sur fond noir
colors murphy
"" Console noire sur fond jaune pâle
"" colors peachpuff
set ai "" autoindentation
set nu "" Numérotation des lignes
set ts=2 "" On met la valeur des tabulations à 2 espaces
set et "" remplace les tabulations par des espaces
set softtabstop=2
set shiftwidth=2
set encoding=utf-8 "" encodage des fichiers en utf-8 par défaut
"" Affiche les dépassements de 80 caractères en rouge
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/
"" Affiche une colonne de couleur après 80 caractères
set colorcolumn=81
"" la colorie en gris
highlight ColorColumn ctermbg=7
"" active la correction en français sur les fichiers .tex
augroup filetypedetect
au BufNewFile,BufRead *.tex setlocal spell spelllang=fr
au BufNewFile,BufRead *.texte setlocal spell spelllang=fr
augroup END
silent! ruby nil "" Euh ... pour ruby ? Aucune idée pour le moment
Ceci me permet de faire des fichiers UTF-8 (encodage de caractères), de mettre une numérotation sur le côté, d’indenter automatiquement, de mettre des couleurs selon le thème murphy, d’activer la reconnaissance de syntaxe, et finalement de n’avoir aucune compatibilité avec l’ancien VI.
Correction orthographique
Mise en place
Mettre en place la correction orthographique demandée :
- la création du dossier ~/.vim/spell/
mkdir -p ~/.vim/spell/
- l’insertion dans celui-ci des 4 fichiers suivants :
cd ~/.vim/spell/
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.sug
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug
- Déclarer à VIM que vous allez utiliser la correction orthographique.
Cette dernière étape se fait de plusieurs manières différentes :
- soit en tapant
[Echap]:setlocal spell spelllang=fr
sous VIM - soit en complétant le fichier ~/.vimrc avec la même ligne
- soit en complétant le fichier ~/.vimrc seulement pour les fichiers d’extensions particulières :
augroup filetypedetect
au BufNewFile,BufRead *.tex setlocal spell spelllang=fr
au BufNewFile,BufRead *.texte setlocal spell spelllang=fr
augroup END
Comment cela fonctionne ?
Je vous invite à lire l’ excellent tutoriel sur la correction orthographique sous VIM de Jérémie Decock , dans lequel il écrit, je cite :
Voici les principales commandes à connaître :
- Pour corriger un mot, il faut placer le curseur dessus et taper « z= ». Une liste de propositions apparaît alors.
- Pour corriger toutes les occurrences de ce mot dans le document édité, on utilise la commande « :spellr ».
- Pour atteindre la prochaine faute, on tape « ]s ». Pour eectuer la même recherche vers le haut, on utilise « [s ».
- Pour désactiver et réactiver la correction orthographique, il faut utiliser les commandes « :set spell » et « :set nospell ».
Pour personnaliser le dictionnaire, il explique :
Un dictionnaire personnalisé permet d’enrichir le correcteur en lui indiquant les mots qu’il ne doit pas considérer comme des fautes (les noms et les prénoms par exemple). On peut ajouter un mot en plaçant le curseur dessus et en tapant « zg ». Pour annuler cette opération, on utilise « zug ».
Raccourcis pour le folding
Le folding est une fonctionnalité qui permet de regrouper plusieurs lignes de code en une seule afin de s’y retrouver plus facilement dans son fichier.
Voici donc les raccourcis récupérés sur le site suivant : https://www.linux.com/learn/tutorials/442438-vim-tips-folding-fun
Vim folding commands
zf#j creates a fold from the cursor down # lines.
zf/string creates a fold from the cursor to string .
zj moves the cursor to the next fold.
zk moves the cursor to the previous fold.
zo opens a fold at the cursor.
zO opens all folds at the cursor.
zm increases the foldlevel by one.
zM closes all open folds.
zr decreases the foldlevel by one.
zR decreases the foldlevel to zero -- all folds will be open.
zd deletes the fold at the cursor.
zE deletes all folds.
[z move to start of open fold.
]z move to end of open fold.
Utilisation
Séléction de l’ensemble du texte d’un document VIM
Il faut taper ceci :
Touche [Echap], G, v, gg
Le fait de faire G (ou shift + g si vous êtes en minuscule), permet de descendre au bas du document.
V permet de se mettre en mode visuel, et gg de remonter tout en haut.
Pour copier notre séléction dans VIM
Il faut taper (une fois le texte séléctionné à l’aide de [Echap], puis V) :
y (pour copier)
p (pour coller)
Supprimer une ligne / plusieurs lignes
Pour supprimer une ligne, faites [Echap] pour être sûr de ne pas être en mode Insertion, puis aller à la ligne choisie, et faites dd. Cela aura pour effet de supprimer la ligne courante.
NB : En réalité cela COUPE la ligne, ce qui fait que [Echap] puis p permet de coller la ligne précédemment coupée.
Pour supprimer plusieurs lignes, faites à nouveau [Echap] pour sortir de n’importe quel mode, puis aller sur la ligne de début, et faites d10 pour supprimer les 11 lignes suivantes.
NB : Là encore cela COUPE les lignes.
Substitution
VIM permet de substituer plusieurs caractères en fonction de votre imagination. Pour cela faites ceci :
- Ouvrez un document
- Faites [Echap] pour sortir de tout mode
- Tapez :%s/
- Puis continuez avec la chaîne à modifier
- Tapez à nouveau /
- Puis la chaîne de remplacement
- Et finalement /g pour dire qu’on fait la chose sur tout le document
Concrètement, pour passer de Wikini à DokuWiki, j’ai du faire ceci :
:%s/ - / * /g
Ce qui a eu pour effet de changer les 8 espaces suivis d’un tiret puis d’un espace par une chaine de 2 espaces suivies d’une étoile puis d’un espace.
Mettre en commentaire plusieurs lignes
Cela vous arrive aussi de jurer tout les noms parce que vous devez commenter plus de 5 lignes de fichiers de configurations ?
Pourquoi ne pas utiliser la technique de la substitution ? 😄
Faites simplement ceci :
- Allez au début de la ligne à commenter
- Faites [Echap] pour quitter tout mode spécifique
- Tapez sur V => vous entrez dans le mode visuel
- Tapez sur la touche FIN pour aller en fin de ligne puis descendez avec la touche bas jusqu’à mettre en surbrillance le texte que vous vouliez
- Tapez sur : puis faites s/^/#/g puis tapez sur [Entrée].
Vous aurez donc l’ensemble de vos lignes commentées avec dièse (#) !
Si vous voulez commenter par autre chose, changez simplement le dièse par le caractère que vous souhaitez ajouter en début de ligne.
Supprimer le mot avant le curseur
Pour supprimer le mot situé avant le curseur (ou considéré comme un mot), mettez vous en mode insertion en faisant [Echap] puis i. Ensuite appuyez simultanément sur [Ctrl] + [w]. Le dernier mot disparaît !
Indente la ligne actuelle avec coupure sur 80 caractères
En mode affichage, allez sur une ligne précise, puis tapez ceci :
gq
Indente toute la page
Il faut utiliser ==.
On peut également faire 10== qui réindente correctement les 9 prochaines lignes (dont l’actuelle).
Déplacer tout un paragraphe vers la droite à l’aide d’une tabulation
Il suffit de sélectionner votre texte à l’aide des touches [Échap] puis [v], après quoi vous utilisez les touches fléchées pour sélectionner les bonnes lignes. Faites > et le tour est joué ;)
Insérer le résultat d’une commande dans VIM
Il suffit de taper ceci dans VIM :
:r!commande shell
Par exemple, pour insérer la date :
:r!date
Ouvrir un fichier avec le curseur à une ligne donnée du fichier
Tapez :
vim +num_ligne nom_fichier
où :
- num_ligne est le numéro de ligne à atteindre
- nom_fichier est à remplacer par le nom du fichier que vous voulez ouvrir avec le curseur à la dernière ligne.
Ouvrir un fichier avec le curseur à la dernière ligne du fichier
Tapez :
vim + nom_fichier
où nom_fichier est à remplacer par le nom du fichier que vous voulez ouvrir avec le curseur à la dernière ligne.
Se déplacer à une ligne précise du fichier pendant la navigation
Procédez de la manière suivante :
- Tapez sur la touche [Echap] deux fois (au cas où)
- Appuyez sur [:]
- Tapez +num_ligne (où num_ligne est à remplacer par le numéro de la ligne où vous voulez vous rendre)
- Appuyez sur [Entrée]
Vous voilà à la ligne num_ligne.