# vim-dev-web
Configuration du traitement de texte _VIM_ pour le développement _WEB_.
Toutes les étapes sont à réaliser avec l'utilisateur qui sera utilisé pour coder.
Vous pourrez trouver des astuces concernant ce logiciel dans la page qui lui est consacrée ici : https://doc.ycharbi.fr/index.php/Vim
![Aperçu du rendu visuel de la configuration](images/aperçu_visuel_configuration_vim.png)
# Configuration de l'environnement
## Gestionnaire de greffons
_VIM_ est de base un outil aux fonctionnalités extensibles particulièrement adapté à l'édition de fichiers de configuration système. Il peut également s'avérer être un logiciel parfaitement adapté à la programmation pour peu qu'on lui ajoute quelques modules complémentaires.
J'utilise plusieurs greffons installés via le gestionnaire _Vim-plug_. Depuis _VIM_ 8, la gestion de paquetages pour les greffons est intégrée de base. Je n'ai pas testé cette possibilité mais cela serai probablement préférable lorsque l'environnement sera bien rodé.
Pour ajouter _Vim-plug_, il faut utiliser la commande suivante :
```
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
```
## Configuration de _VIM_
Copier le fichier de configuration comme ceci :
```
cp vimrc ~.vimrc
```
Quitter et relancer _VIM_ pour appliquer la configuration.
## Gestion des greffons
Le fichier de configuration fournis dans ce dépôt comporte une liste de modules à installer. Ceux-ci se présentent sous leur nom _GitHub_ (utilisateur/projet). Pour en ajouter, il suffit donc d'insérer une nouvelle linge avec l'_URI_ _GitHub_ du greffon.
Dans _VIM_, taper ceci en mode normal pour installer les greffons contenus dans la liste :
```
:PlugInstall
```
Pour en désinstaller un, il faut retirer sa ligne correspondante dans le `~/.vimrc` et exécuter la commande _VIM_ suivante :
```
:PlugClean
```
Il est à noter qu'un greffons est constitué d'un ensemble de fichiers dans un répertoire qui lui est propre. La suppression de ce répertoire revient à désinstaller le greffon (cela ne pourris donc pas votre système avec des merdes dans tous les sens).
# Ressources
## Commandes utiles
### Source d'initialisation de paramètres
Plusieurs éléments définissent des valeurs aux paramètres de _VIM_. Pour déterminer quel fichier à initialisé tel paramètre, la commande suivante peut être utilisée :
```
:verbose set ?
```
Exemple pour le paramètre définissant l'ajout automatique de commentaires :
```
:verbose set formatoptions?
```
### Lister les thèmes displonibles
Afin de lister les thèmes _Colorschceme_ disponibles, tapez la commande suivante :
```
:colorscheme
```
Pour lister les thèmes _Airline_ :
```
:AirlineTheme
```
Il est possible de définir manuellement les couleurs utilisées pour la syntaxe via :
```
:highlight [Groupe] [clé=valeur]
```
Sources :
* https://phoenixnap.com/kb/vim-color-schemes
* https://www.sbf5.com/~cduan/technical/vi/vi-4.shtml#color
Je n'ai pas exploré cette piste plus profondément.
## Liens utiles
Voici une petite liste de liens comportant des informations intéressantes :
* Une flopée de paramètres se trouvent dans le fichier https://github.com/arkokoley/arcana-vim/blob/master/vimrc
* Il existe des distributions _VIM_, dont _Janus_, préconfigurée pour cet usage : https://github.com/carlhuda/janus
* Un _Wiki_ qui parle de _VIM_ : https://riptutorial.com/vim
# Améliorations à venir
Comme expliqué, depuis sa version 8, _VIM_ permet l'utilisation de modules via un système de paquetages intégré de base. Je n'ai pas pris le temps d'explorer cette piste mais je pense que cela vaut le coup.
Les modules suivant présentent un intérêt pour le développement mais n'ont pas fonctionné lorsque je les ais essayés :
* Correcteur syntaxique : vim-syntastic/syntastic
* Auto-complétion syntaxique : ycm-core/YouCompleteMe
Pour _ycm-core/YouCompleteMe_, il faut installer `cmake` et se placer dans le répertoire du module pour lancer son script d'installation :
```
cd ~/.vim/plugged/YouCompleteMe
/usr/bin/python3 install.py
```
Je ne suis pas allé plus loin dans le test.
Autres modules à essayer :
* Curseurs multiples : paradigm/vim-multicursor
* Alignement automatique : junegunn/vim-easy-align
Voir la fonction "Spell Check" pour vérifier l'orthographe.