dots/tutoriels/neovim.md
2026-06-05 13:11:08 +02:00

4.6 KiB

Tutoriel temporaire et minimal

Neovim does everything

Neovim est un outil très utile pour coder (et faire globalement tout) sans quitter le clavier (pas besoin de souris). Cela prend un certain temps d'adaptation, mais pour un gain de vitesse et de confort non négligeable en définitive. Se référer à internet qui explique très bien les déplacements de base (il existe même des minjeux type snake pour s'entraîner).

Avec Arch, installer neovim se fait avec pacman, et demandera un terminal (kitty par exemple). Pour les plugins utilisés ici, il faudra aussi installer :

  • zathura (lecteur de pdf)
  • tree-sitter-cli
  • texlive (ATTENTION, configurer neovim puis faire pacman -Syyyu, pour une installation correcte de biber)
  • imagemagick
  • luarocks

Il faudra aussi entrer :setlocal spelllang=fr pour activer la correction de la langue (voir autocorrection sur le wiki neovim)

Warning

Aller voir ce lien (et faire nvim -u NORC pour télécharger le langage) Sinon directement télécharger fr.utf-8.spl ici

Neovim est hautement personnalisable, notamment avec une quantité assez impressionnante de plugins communautaires disponibles sur github. Ici, j'utilise le package manager interne à neovim édité par M.Folke, "LazyVim", qui fonctionne très bien. On recopiera la structure de dossier de la partie suivante, et on pourra ajouter des plugins en ajoutant des fichiers (un par plugin). Sur github, en général, le tutoriel d'installation est expliqué, et propose "Pour Lazy". Comme on sépare les fichiers ici, il faudra noter :

return {
-- copier coller ce qui est demandé entre {}
}

Le wiki est bon mais demande un temps d'adaptation (finalement une part de la philosophie neovim).

Architecture

nvim
init.lua
lazy-lock.json (generated)
- after
- lua
    - neoconf
        autocmd.lua
        init.Lua
        lazy_init.lua
        lsp-config.lua
        remap.lua
        settings.lua
        - lazy
            FICHIERS DE PLUGINS (ajouter return{} autour de ce qui est recommandé sur github pour Lazy)
        - snippets
            latex.lua

In settings

Appel de tous les fichiers de paramètres :

lazy_init Appelle et installe le package manager lazy-folke (cf wiki) Définition du dossier de plugin (dans neoconf ici)

settings Paramètres de base de neovim (cf wiki)

remap Définition et redéfinition de raccourcis clavier

autocmd Définition des autocommands (voir wiki)

lsp-config Bon ça je sais plus mais je supprimerai pas par peur de casser

Et définit le leader (space dans cette config)

Plugins

  • Affichage entrée dans neovim Alpha nvim

  • Formatage (deux nécessaires)

    Il faut lancer :Mason pour installer les formatters, ou les annoncer directement dans le fichier plugin

    Annoncer les langages voulus dans le fichier plugin + autocmd pour le lancer automatiquement

  • Affichage des autocomplétions (Blink)

ctrl n (next) ctrl p (previous) ctrl y valider [!TODO] Snippet (autocomplétion, pas encore paramétré) (Luasnip)

  • Gestionnaire de fichiers (Oil)

<space>n

  • Recherches rapides (Telescope)

  • Oblige à utiliser correctement les déplacements Hardtime

  • Thèmes (Tokionight, Nightfox)

  • Ligne inférieure (Lualine)

  • Affichage un peu cool (Noice)

  • Donne des indication sur les raccourcis dispo (Whichkey)

[!TODO] Gestion des images (Image)

Raccourcis (définis dans les mappings nvim) : <space>cv (ATTENTION il faut que le delimiter soit ";", peut être paramétré autrement dans les mappings cependant)

Taper <space> et les différentes commandes dispo seront affichées par whichkey ATTENTION il faut installer zathura et ses plugins de pdf !!!