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/a
exécuter test/spec (fichier, le plus proche, dernier, tout)
Autres :
- suspendre vim avec
Ctrl+z
et 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