Cette repo contient ma configuration pour Neovim.
Nécessite Neovim >= 0.11
Cette config contient notamment
- Quelques raccourcis
- Support des langages via Lazy et Mason
- Thème et apparence via colorscheme et Lualine
- Une sélection de Plugins : Nvim-tree, Copilot, Harpoon, autopair, telescope
Pour trouver l'emplacement de l'installation config_path, ouvrir Neovim et taper la commande :echo stdpath("config"). Ouvrir ensuite un terminal et cloner cette repository dans config_path :
git clone https://github.com/Ledugus/nvim-config.git <config_path>Au lancement, Neovim lit le fichier init.lua dans .config/nvim/. Ce fichier require les fichiers de setup se trouvant dans lua/user/. Le premier est remap.lua, qui enregistre quelques raccourcis. Le second est set.lua qui enregistre des options globales. Le dernier est lazy.lua, le gestionnaire de plugins.
Les plugins sont simplement des tableaux décrivant les options et la fonction config appelée au lancement. Pour ajouter un plugin, il suffit donc de rajouter un fichier lua/user/plugins/my_plugin.lua de la forme :
return {
"<plugin_path>.nvim", -- see the right path on plugin's official repo
dependencies = { <all_dependencies> },
config = function()
require(<plugin>).setup( { <plugin options> })
vim.keymap.set("n", "<keymap>", <function_to_call>, {<options>})
end,
}Normal mode :
<leader>rp: Save and run current file with Python3.<leader>mm: Save file and compile current class with manim.gd: Go to definition<leader>h: See documentation of current element<leader>vd: View diagnostics on current line<leader>vrr: View references of current element<leader>r: File-wide rename of current element
Visual mode :
J: Move all selected lines downK: Move all selected lines up
L'équivalent des extensions de langage dans VSCode est le Language Server Protocol (LSP). Le fichier lsp.lua gère l'installation et la configuration de ces plugins.
Langages supportés actuellement
- Lua :
lua_ls(lsp et linter), stylua (formatter) - Python :
pyright(lsp),ruff(lsp & linter) etblack(formatter) - C :
clangd(lsp, formatter et linter) - Javascript/Typescript :
ts_ls(lsp et linter),prettier(formatter) - Typst :
tinymist(lsp, formatter et linter)
Le thème est onedark.
La barre d'état est gérée par le plugin LuaLine.
- Nvim-tree : Explorateur de fichiers amélioré
- Copilot : Complétion et suggestion
- Telescope : Recherche rapide dans tout le projet. Raccourcis :
<leader>pf: Recherche dans les noms de fichiers<leader>ps: Recherche globale dans tout le projet
- Harpoon : Quick switcher. Raccourcis
<leader>a: Ajouter un fichier<C-e>: Ouvrir le Menu<C-e>, <C-t>, <C-n>: Ouvrir les fichiers 1, 2, 3 respectivement.
- Autopair : Gestion intelligente des parenthèses
- ToggleTerm : Fenêtre popup de terminal