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 panneaugt: passer entre les onglets vim<C-b>: déclencher navigation Tmux.
Fonctionnalités actives
gd: aller à la définitiongi: aller à l'implémentationgr: naviguer à travers les référencesgf: aller au fichier (uniquement pour Ruby/Rails)gg=G: reformater le codeF2: renommer var / méthode / classe<C-k>: afficher la définition de la méthodeqf: 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 NerdTreeEnter: ouvrir le fichieri: ouvrir en éclat horizontals: 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