haelle.vimrc
vimrc Ansible
Un rôle Ansible pour installer NeoVim avec quelques plugins.
Cela nécessite les tâches de la communauté Ansible :
ansible-galaxy collection install community.general
Dépendances
- ⚠ Attention, cela installe NodeJS et npm depuis le gestionnaire de paquets. ⚠
- Installer Fzf et Ag pour la recherche.
Objectifs
Prise en charge complète et fluide pour ces langages/syntaxes :
- Ruby/RoR
- HTML
- Javascript
- VueJS
- React
- Ansible
- JSON
- YAML
- Markdown
- C#
L'objectif est d'avoir 0 comportements buggés.
Thème & Police
Le thème actuel est slate (desert et industry sont aussi bons) ; changez-le avec :colorscheme xxx, disponible avec Tab.
La police actuelle est MesloLGS NF Regular (supporte les émojis) configurée pour Zsh.
Plugins
Installer les plugins : :PlugInstall (déjà installés par Ansible).
Navigation
Aide : utilisez :help keycodes pour afficher les noms des codes de touche vim.
Possibilité de naviguer avec des éclats, des onglets et Tmux :
- <C-w f>: ouvrir en éclat
- <C-w gf>: ouvrir en onglet
- <C-⬅,⬆,⬇,➡>: navigation dans les panneaux
- <C-w-⬅,⬆,⬇,➡>: déplacer le panneau
- gt: passer entre les onglets vim
- <C-b>: déclencher navigation Tmux.
Fonctionnalités actives
- gd: aller à la définition
- gi: aller à l'implémentation
- gr: naviguer à travers les références
- gf: aller au fichier (uniquement pour Ruby/Rails)
- gg=G: reformater le code
- F2: renommer var / méthode / classe
- <C-k>: afficher la définition de la méthode
- qf: exécuter le correcteur de linter - ne fonctionne pas bien...
- fr: exécuter le formatteur sur la ligne actuelle (ne fonctionne pas sur Solargraph/Ruby)
- fa: exécuter le formatteur sur tout le fichier
- <C-o>: retour
- <C-s>: sauvegarder
- <C-space>: déclencher le moteur d'autocomplétion
- <tab>: naviguer à travers les propositions d'achèvement
- <C-c>: commenter / décommenter (ligne ou sélection)
- bufdo!: utiliser- !pour ne pas sauvegarder les fichiers (avec cette configuration c'est obligatoire...)
Concernant Ruby et Rails :
- <C-q>: passer entre le Ruby spec et le fichier
- <C-w>t/s/l/aexécuter test/spec (fichier, le plus proche, dernier, tout)
Autres :
- suspendre vim avec Ctrl+zet revenir avec fg.
Fonctionnalités automatiques / passives
- vérification orthographique
- mise en surbrillance de syntaxe
- auto linter dans la gouttière et fenêtre flottante
- utiliser 2 espaces pour les tabulations partout
- mémoriser la position du curseur entre les sessions
- supprimer les lignes vides à la sauvegarde
- supprimer les espaces inutiles
- afficher tous les caractères invisibles
- surligner les mots-clés 'TODO/FIXME/XXX'
- améliorer le redimensionnement de vim
- ajouter tous types de paires (), [] tag...
- ajouter les paires Ruby (def/end, do/end)
- ajouter des infos Git dans la gouttière
- ajouter des infos de linter dans la gouttière ou avec un soulignement
- montrer la définition de la méthode quand elle est disponible (utilisez <C-a>et<C-b>pour faire défiler après et avant)
Recherche
Actif :
- <C-f>: rechercher dans le fichier courant (vim basique)
- <Shift-f>: rechercher dans tous les fichiers (en utilisant fzf.vim / ag)- Attention : vous devrez peut-être désactiver votre recherche terminal pour que cela fonctionne.
 
- <Esc>: annuler la recherche (annuler la mise en surbrillance)
- <C-p>: rechercher un fichier par nom (en utilisant fzf.vim)- Enter: ouvrir
- <C-t>: ouvrir dans un nouvel onglet
- <C-x>: ouvrir dans un éclat horizontal
- <C-v>: ouvrir dans un éclat vertical
 
Passif :
- surligner les résultats en DarkGreen
- surligner la sélection actuelle avec le curseur clignotant.
Barre latérale (NerdTree)
Actif
- <C-n>: ouvrir/fermer NerdTree
- Enter: ouvrir le fichier
- i: ouvrir en éclat horizontal
- s: ouvrir en éclat vertical
- ... cf doc de NerdTree
Passif
- icônes pour les fichiers
- symboles basés sur l'état Git
- ignorer certains dossiers (node_modules,.gitignore)
Ruby - voir c'est croire
F4/F5/F6/F7 marquer/exécuter/marquer & exécuter/effacer les marques du code.
Conquérir l'Achèvement
Les plugins seront installés au premier démarrage.
Pour Solargraph, vous devez l'installer pour chaque version de Ruby avec laquelle vous travaillez :
:InstallGems
Commandes utiles :
- :CocInfo
- :CocList commands
- :checkhealth
- :CocList extensions
- :call CocAction('format')
- :CocList marketplace python
Gardez à l'esprit les extensions disponibles :
- javascriptreact
- typescript
- typescriptreact
- typescript.tsx
- graphql
Variables de Rôle
Aucun paramètre obligatoire, tous les paramètres se trouvent dans defaults/main.yml.
Exemple de Playbook
- hosts: localhost
  roles:
    - role: vimrc
      vim_user: foo
Utilisation en développement
Pour l'exécuter localement, créez un lien symbolique : cd /etc/ansible/roles & sudo ln -s /path/to/vimrc .
Licence
BSD
ansible-galaxy install haelle.vimrc