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
if <condition> <code> elseif <condition> <code> else <code> endif
while
while <condition> <code> endwhile
for
for <variable> in <List> <code> endfor
Fonctions
function[!] <nom> (<arguments>) <code> [return] endfunction
Le ! 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.
:h :function
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.
" Par exemple if exists( 'beer' ) | finish | endif
Présence
has("<option>") " renvoie vrai si le module existe
Autres
Buffer
bufname("%") " permet de récupérer le nom du fichier courant
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
python << EOF <code python> EOF
Documentation
:h pythonC'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
ruby << EOF <code ruby> EOF
Documentation
:h rubyC'est ici que se trouve la plupart de la doc pour coder en ruby dans vim.
Liens externes
- (en) Tuto sur le vimscript.
- (en) Astuces dédiées au scripting sur vim.wikia.
