gvim et vimrc

Habituellement je n’utilise que la ligne suivante dans mon fichier vimrc qui gère la configuration par défaut de mon gvim/vim :

colorscheme slate

Juste le changement du thème et donc des couleurs par défaut de Gvim en choisissant un thème prédéfini.

J’avais besoin de disposer d’un Gvim ouvert au centre de mon écran de taille plutôt réduite déjà en mode édition avec un fichier vide par défaut. Du coup, j’ai installé le plugin wimproved.vim. Ce plugin a installer simplement, le fichier wimproved32.dll dans le dossier principal de vim, dans le dossier autoload le fichier autoload/wimproved.vim et dans le dossier plugin le fichier plugin/wimproved.vim.

Ensuite il faut configurer le fichier vimrc :

" Simplifier l'interface de gvim en retirant le menu et les icones
autocmd GUIEnter * silent! WToggleClean
" Centrer gvim avec une taille de 30% de l'écran
autocmd GUIEnter * silent! WCenter 30
" Degré de transparence de l'interface sur 255 niveau
autocmd GUIEnter * silent! WSetAlpha 220
" Couleur du thème
colorscheme slate

" test si c'est l'édition d'un nouveau fichier ou d'un fichier existant
" ces réglages ne sont appliqués qu'au nouveau fichier pas aux fichiers en éditon 
if argc()==0

  " cache les symboles ~ qui indiquent des lignes non existente
  hi NonText guifg=bg
  " fait une insertion vide par défaut pour retirer le message d'introduction 
  normal i 
  " mode insertion au lieu d'être mode commande comme habituellement
  start
endif


 

Vi / VIM / Gvim sont des outils très pratiques car disponiblent sur toutes les plateformes et les systèmes d’exploitations. Ils gèrent un nombre important type de format et ouvrent même des fichiers de tailles énormes sans sourciller. Je sais que l’apprentissage sur cet outil est compliqué (mode commande <-> mode édition) mais les manipulations de types expressions régulières et les plugins additionnels en font un outil extraordinaire.

Efface les lignes avec le mot profile quelque part:

:g/profile/d

Efface les lignes ne contenant par le mot profile quelque part:

:g!/profile/d

 

Scripts avec gVIM

Maintenant supposons que l’on souhaite appeler une commande classique qui efface les lignes vides d’un fichier.

On peut créer le fichier pje.vim par exemple dans le dossier de l’utilisateur (dans mon cas c:/Users/pierre.jean/pje.vim). Dans ce fichier, on indique cette ligne :

g/^$/d

Il suffit ensuite de l’appeler avec la commande source

:source ~/pje.vim

Ou avec le chemin complet

:source c:/Users/pierre.jean/pje.vim

Mais comment faire de cette ligne une fonction et l’appeler plusieurs fois surtout dans la nouvelle version Gvim 9. En premier lieu nous créons une nouvelle fonction avec le mot clef def dans le script pje.vim

vim9script 
# RemoveEnmptyLine
def RemoveEmptyLine()
   g/^$/d
enddef

La fonction RemoveEmptyLine est créée mais non appelée. Alors on pourrait ajouté un appel avec call RemoveEmptyLine au dessous mais nous voulons une commande et un raccourci pour l’appel de notre fonction ajoutons donc:

vim9script 
# RemoveEnmptyLine
def RemoveEmptyLine()
   g/^$/d
enddef


command! Rel :call RemoveEmptyLine()
nmap <silent>  <C-D>  :Rel<CR>

La commande Rel peut appeler la méthode RemoveEmptyLine et la dernière ligne lie la combinaison de CTRL+D avec la commande Rel.

Alors, je ne suis pas un expert dans les nouveaux scripts de gvim 9, je n’ai pas compris pourquoi ma nouvelle fonction de type def n’est pas appelable en mode commande, mais cette solution me va bien, soit une commande et un raccourci.

A propos Pierre Jean

Ingénieur de Recherche CERIS Centre d'Enseignement et de Recherche en Informatique et Systèmes IMT Mines Alès UMR Euromov DHM Plus de détails sur Pierre JEAN
Ce contenu a été publié dans Développement. Vous pouvez le mettre en favoris avec ce permalien.