Vim en client/serveur

Anne vim

Chaque fenêtre vim (ou gvim) peut être vue comme un serveur auquel on peut envoyer des commandes.

Le(s) serveur(s)

Un nom par défaut leur est associé (par exemple GVIM, GVIM1, etc) mais on peut choisir le nom grâce à l’option -servername. Par exemple :

gvim --servername S1 fichier.txt

Depuis une instance de vim, on peut voir le nom du serveur associé avec :

echo v:servername

Côté client

L’intérêt est que l’on peut s’adresser à un serveur depuis la ligne de commande. On peut par exemple ouvrir un fichier dans une fenêtre existante en faisant :

gvim --servername S1 --remote fichier.txt

Attention, si le serveur S1 n’existe pas, cela produit une erreur. Pour le créer, il ne faut pas utiliser l’option -remote. Si on ne veut pas se préoccuper de savoir s’il a déjà été lancé ou non, il faut faire :

gvim --servername S1 --remote-silent fichier.txt

On peut aussi lancer des commande plus compliquée, comme :

gvim --servername S1 --remote-send ":split fichier.txt<cr>"

Ci-dessus, <cr> est à prendre littéralement (4 caractères).

Pour en savoir plus, voir dans la doc.

Voir aussi :