Vimscript

De Vim-fr.

Cette page est une ébauche concernant ViM, n'hésitez pas à l'améliorer en partageant vos connaissances.

Vim possède un langage de script qui permet de coder des extensions, c'est également lui qui est utilisé dans le vimrc ou dans le monde commande (:).

Sommaire

Généralités

Structures de contrôle

if

<source lang="vim"> if <condition>

 

elseif <condition>

 <code>

else

 <code>

endif </source>

while

<source lang="vim"> while <condition>

 <code>

endwhile </source>

for

<source lang="vim"> for <variable> in <List>

 <code>

endfor </source>

Fonctions

<source lang="vim"> function[!] <nom> (<arguments>)

 <code>
 [return]

endfunction </source> Le <code>! permet de forcer la réécriture d'une fonction si elle existe déjà.

Le return est optionnel.

<nom> ne doit pas comporter de « : ». Dans le cas des fonctions internes non exportées, à l'image des fonctions statiques en C, le nom doit commencer par « s: » suivi d'une majuscule. Dans le cas des fonctions exportées, le cas par défaut, le nom doit commencer par une majuscule -- à l'exception des fonctions définies dans des autoload plugins, qui jouissent de règles de nommage particulières qui leur permettent d'être entièrement en minuscules.

<source lang="vim">

h :function

</source> Pour obtenir la documentation de vim sur les fonctions.

Divers

Le | est l'équivalent du retour chariot ou du ; en bash/C++, il permet d'écrire plusieurs opérations sur la même ligne. Son utilisation est déconseillée, il vaut mieux mettre une instruction par ligne pour une meilleure compréhension globale. <source lang="vim"> " Par exemple if exists( 'beer' ) | finish | endif </source>

Présence

<source lang="vim"> has("<option>") " renvoie vrai si le module existe </source>

Autres

Buffer

<source lang="vim"> bufname("%") " permet de récupérer le nom du fichier courant </source>

Intégration d'autres langages

Il est possible de coder des scripts pour vim dans d'autres langages, mais cela demande souvent une version de vim compilée pour ce langage.

Python

Init

<source lang="vim"> python << EOF EOF </source>

Documentation

<source lang="vim">

h python

</source> C'est ici que se trouve la plupart de la doc pour coder en Python dans vim, malheureusement c'est assez pauvre et il n'y a pas beaucoup plus de documentation sur internet.

Ruby

Init

<source lang="vim"> ruby << EOF <code ruby> EOF </source>

Documentation

<source lang="vim">

h ruby

</source> C'est ici que se trouve la plupart de la doc pour coder en ruby dans vim.

Liens externes