VIM : éditeur de texte avancé

vim
lancer vim
vimtutor
lancer le tutoriel vim

Modes de VIM

  • Mode interactif : par défaut. Permet de se déplacer dans le texte, de supprimer une ligne, copier-coller du texte, rejoindre une ligne précise, annuler ses actions, etc
  • Mode insertion : appuyer sur i pour y entrer
  • Mode commande : l’activer en tapant :
Racourcis
i
insérer du texte
ESC
sortir du mode insertion

Commandes
:w
enregistrer le fichier (write)
:q
quitter
:wq
enregistrer puis quitter

Déplacements
h
gauche
j
bas
k
haut
l
droite
0
aller en début de ligne (origin)
$
aller en fin de ligne
w
se déplacer de mot en mot (word)
      ^
      k
< h       l >
      j
      v

Opérations standards
x
effacer des lettres en mode interactif
(nb)x
effacer nb lettres
dw
effacer un mot
dd
effacer une ligne
d0
supprimer du curseur au début de la ligne
d$
supprimer du curseur à la fin de la ligne
yy
copier une ligne en mémoire
p
coller (coller plusieurs fois : ex : 8p -> 8x)
r
remplacer une lettre
u
annuler des modifications
G
aller à la ligne x (Go)

Opérations avancées
/
passer en mode recherche (pour chercher un mot par ex)
n aller à la prochaine occurence
N aller à la précédente occurence
:s/ancien/nouveau
remplacer le mot “ancien” par le mot “nouveau” :
:s/ancien/nouveau
remplace la première occurrence de la ligne où se trouve le curseur ;
:s/ancien/nouveau/g
remplace toutes les occurrences de la ligne où se trouve le curseur ;
:#,#s/ancien/nouveau/g
remplace toutes les occurrences dans les lignes n° # à # du fichier ;
:%s/ancien/nouveau/g
remplace toutes les occurrences dans tout le fichier. C’est peut-être ce que vous utiliserez le plus fréquemment.
:r
fusion de fichiers : insérer le contenu d’un fichier au curseur

Splitter écrans (viewports)
:sp
découper l’écran horizontalement
:sp autrefichier
ouvrir autrefichier dans la seconde moitié de l’écran
:vsp
découper l’écran verticalement
Ctrl + w puis Ctrl + ``w
navigue de viewport en viewport. Répétez l’opération plusieurs fois pour accéder au viewport désiré.
Ctrl + w puis j
déplace le curseur pour aller au viewport juste en dessous. La même chose fonctionne avec les touches h, k, j et l que l’on utilise traditionnellement pour se déplacer dans Vim.
Ctrl + w puis +
agrandit le viewport actuel.
Ctrl + w puis -
réduit le viewport actuel.
Ctrl + w puis =
égalise à nouveau la taille des viewports.
Ctrl + w puis r
échange la position des viewports. Fonctionne aussi avec « R » majuscule pour échanger en sens inverse.
Ctrl + w puis q
ferme le viewport actuel.

Zoom
Ctrl + Shift + +
zoom
Ctrl + Shift + -
dezoom

Options de vim

Rem : pour qu’elles soient retenues, créer un fichier .vimrc dans le répertoire personnel (un exemple de fichier se trouve dans /etc/vim -> vimrc)

:set option
activer l’option en mode commande
:set nooption
désactiver l’option en mode commande
:set option?
connaitre l’état d’une option
:set option=valeur
donner une valeur à une option
:set syntax=ON
coloration synthaxique
:set background=dark
coloration adaptée pour les fonds noirs
:set number
affiche les n° de lignes
:set showcmd
afficher la commande en cours
:set ignorecase
ignorer la casse lors des recherches
:set mouse=a
activer la souris

Gérer les plugins

https://artisan.karma-lab.net/configurer-vim

  • Création d’une arborescence pour les fichiers de config :
$ cd
$ mkdir -p .vim/{autoload,colors,syntax,plugin,spell,config}
$ mv .vimrc .vim/vimrc
$ ln -s .vim/vimrc .vimrc

(on crée un lien vers .vim/vimrc`)

  • Installation de pathogen :
$ cd ~/.vim
$ git clone https://github.com/tpope/vim-pathogen.git pathogen
$ cd autoload
$ ln -s ../pathogen/autoload/pathogen.vim
  • Pour mettre à jour pathogen :
$ cd ~/.vim/pathogen
$ git pull
  • Installer un plugin : exemple avec NERDTree
$ cd ~/.vim
$ mkdir -p bundle
$ cd bundle
$ git clone https://github.com/scrooloose/nerdtree.git nerdtree
  • Allure finale du dossier .vim (situé dans ~/)
.vim
├── autoload
│   └── pathogen.vim -> ../pathogen/autoload/pathogen.vim
├── bundle
│   └── nerdtree
│       ├──.......
├── colors
├── config
├── pathogen
│   ├── autoload
│   │   └── pathogen.vim
│   ├── CONTRIBUTING.markdown
│   └── README.markdown
├── plugin
├── spell
├── syntax
└── vimrc (fichier)
  • Allure du fichier vimrc :
1 set nocompatible
2
3 runtime! config/**/*.vim
4
5 set number
6
7 " Initialisation de pathogen
8 call pathogen#infect()
9 call pathogen#helptags()
10
  • Pour démarrer NerdTree : taper :NERDTree en mode interactif