Vim

Philippe Wambeke - LoliGrUB (21 octobre 2017)

Un peu d'histoire

Les origines

Vi (“visual”), développé par Bill Joe en 1976, est un progrès considérable par rapport à ed (1970 - Ken Thompson) qui ne permettait pas d'éditer et de voir simultanément le texte dans son intégralité.

Vim fut d'abord développé en 1988 sur Amiga par Bram Moolenaar qui ne retrouvait pas sur cette plateforne l'éditeur auquel il était habitué sous UNIX.

Vim signifiait au départ “Vi IMitation”. Ce n'est qu'avec l'arrivée de la version 1.22 et le portage sous UNIX et ms-dos que la signification de Vim a changé pour devenir “Vi IMproved” (“vi amélioré”).

Vim vs Vi

Vim, c'est compliqué ?

L'installation

Vim est packagé dans toutes les distributions et l'installation se fait via un simple

sudo apt-get install vim
sudo yum install vim
sudo pacman -S vim

La base

Les deux modes de fonctionnement

  • Le mode normal: ce qu'on tape sont des commandes pour Vim.
  • Le mode insertion: ce qu'on tape s'insère dans le fichier

Pour passer de l'un à l'autre: <esc> ou <i>

Démarrer et quitter

  • Lancer vim: vim
  • Passer en mode insertion: i
  • Taper du texte
  • Retourner en mode normal: <esc>
  • Ecrire le fichier sur disque: :w mon_fichier.txt
  • Quitter: :q

Les déplacements

Outre les traditionnels flêches, home / end et PgUp / PgDn, Vim dispose de commandes pour:

  • se déplacer de mot en mot suivant: w (word)
  • se déplacer de mot en mot précédent: b (back)
  • se déplacer en haut de l'écran: H (high)
  • se déplacer en bas de l'écran: L (low)
  • se déplacer en milieu de l'écran: M (middle)
  • se rendre directement à une ligne: :50

Déplacements avancés

  • se déplacer à la phrase suivante: (
  • se déplacer à la phrase précédente: )
  • se déplacer au paragraphe suivant: {
  • se déplacer au paragraphe précédent: }
  • se déplacer jusqu'à: t (till)
  • Encore plus fort: il est possible de combiner les commandes de déplacement avec un nombre.

Les modifications

Supprimer des caractères

  • Supprimer le caractère sous le curseur: x (ou delete)
  • Supprimer: d (delete) qu'il est possible de combiner avec les commandes de déplacement !

Exemples:

  • Supprimer les 3 mots suivants: d3w
  • Tout supprimer jusqu'au premier point: dt.
  • Supprimer la ligne courante: dd - Répéter une commande l'applique sur toute la ligne

Le copier / coller

  • Copier: y (yank) - supporte les commandes de déplacement
  • Coller: p ou P (paste) - colle après (p) ou avant (P) le curseur

A noter: tout ce qui est effacé est placé dans le presse-papier.

Exemples:

  • Copier une ligne entière: yyp
  • Inverser deux lignes: ddp
  • Couper 3 mots et les coller ailleurs: d3w puis p.

La recherche

La recherche se fait simplement avec le caractère /. Selon les options la recherche peut être incrémentale.

  • n (next): recherche le terme suivant
  • N: recherche le terme précédent
  • *: recherche le terme sous le curseur

Les options

En plus d'être puissant, vim est souple grâce à ses nombreuses options. Elles se configurent à l'aide du fichier .vimrc qui doit se trouver dans le dossier personnel (~/.vimrc).

" Options standard
set nocompatible
set number
" Options pour la recherche
set ignorecase
set smartcase
set incsearch
set hlsearch
" pas de fichier backup
set noswapfile
set nobackup

Les plugins

Il existe un nombre impressinnant de plugins qui permettent de dédier vim à toute activité: développement, rédaction xml, …

La manière de les installer dépend essentiellement de la popularité du plugin.

  • Soit il est “packagé” dans la distribution
  • Soit il ne l'est pas et l'installation consiste alors à copier les fichiers du plugin dans le bon répertoire.

S'il n'y avait qu'un plugin à retenir: airline !

Quelques références

Pour le fun

Le petit nouveau: neovim

Neovim est un “fork” de Vim. L'accent est mis sur la clarté et la qualité du code au détriment du nombre de plate-formes supportées.

Neovim veut également mettre en place une communauté plus ouverte et s'ouvrir sur le “futur”.

Le projet a débuté en 2014 suite à un patch pour Vim qui avait été refusé.

Conclusion

Découvrez Vim et franchissez l'obstacle des modes de fonctionnement: vous ne le regretterez pas !

Merci

Questions ?