Une configuration Neovim minimale écrite en Lua
Table des matières
Neovim est un successeur plutôt sympa de Vim, se concentrant sur la compatibilité tout en ajoutant des fonctionnalités de plugin asynchrone et en essayant de nettoyer la base de code. Ayant eu marre à plusieurs reprises de Sublime Text (2 et 3) et d'Atom, et après avoir réalisé combien de développement je fais sur SSH, il semblait raisonnable d'essayer d'utiliser vim (ou nvim, dans ce cas) comme mon IDE. Les avantages se résument essentiellement à :
J'ai donc décidé de créer ce référentiel. Il existe plusieurs versions, consultez CHANGELOG.
Cette configuration est conçue comme un point de départ et correspond uniquement à mes besoins. Si vous souhaitez le personnaliser, passez à 6. Personnalisation.
mv ~ /.config/nvim ~ /.config/nvim.bak
Système d'exploitation | CHEMIN |
---|---|
Linux, MacOS | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
Windows (cmd) | %localappdata%nvim |
Windows (PowerShell) | $env:LOCALAPPDATAnvim |
REMARQUE L'URL de votre fork ressemblera à ceci :
https://github.com/<your_github_username>/neovim-config.git
REMARQUE Si vous suivez l'étape recommandée ci-dessus (c'est-à-dire créer le dépôt), remplacez
ntk148v
par<your_github_username>
dans les commandes ci-dessous.
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
Si vous utilisez cmd.exe
:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
Si vous utilisez powershell.exe
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
. Les fichiers sous configuration seront automatiquement chargés au moment approprié, vous n'avez donc pas besoin d'exiger ces fichiers manuellement.
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
Plugin | Description |
---|---|
paresseux.nvim | Un gestionnaire de plugins moderne pour Neovim |
mason.nvim | Gestionnaire de packages portable pour Neovim qui s'exécute partout où Neovim s'exécute. Installez et gérez facilement les serveurs LSP, les serveurs DAP, les linters et les formateurs. |
nvim-lspconfig | Une collection de configurations courantes pour le client serveur de langage intégré de Neovim |
signes git | Décorations git ultra rapides implémentées uniquement en lua/sarcelle |
nvim-treesitter | Configurations Nvim Treesitter et couche d'abstraction |
nvim-cmp | Plugin de complétion automatique |
LuaSnip | Moteur d'extraits de code pour Neovim écrit en Lua |
nvim-tree.lua - | Un explorateur de fichiers écrit en Lua |
nvim-paires automatiques | Un autopair super puissant pour Neovim |
nvim-web-devicons | fork Lua de vim-web-devicons pour neovim |
ualine.nvim | Un plugin neovim statusline extrêmement rapide et facile à configurer écrit en lua pur. |
norcalli/nvim-colorizer.lua | Le coloriseur Neovim le plus rapide. |
nvim-télescope/télescope.nvim | Rechercher, filtrer, prévisualiser, choisir. Tout Lua, tout le temps. |
pin rosé | Ambiance Soho pour Neovim |
nvimtools/none-ls.nvim | null-ls.nvim rechargé / Utilisez Neovim comme serveur de langage pour injecter des diagnostics LSP, des actions de code et bien plus encore via Lua. |
folke/quelle-clé.nvim | Créez des raccourcis clavier qui collent. WhichKey vous aide à mémoriser vos claviers Neovim, en affichant les raccourcis clavier disponibles dans une fenêtre contextuelle pendant que vous tapez. |
Par défaut, les serveurs LSP suivants sont installés et configurés :
De plus, il s'intègre à nvim-treesitter pour fournir une coloration syntaxique riche et d'autres magies d'analyse du langage.
Si votre langue n'est pas prise en charge, veuillez suivre ceci :
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
Vous pouvez ajouter davantage de serveurs LSP et de coloration syntaxique du langage en modifiant le fichier personnalisé.
Ce sont les claviers par défaut, dans les raccourcis suivants, la touche <leader>
+` est configurée sur le caractère `` (espace), vérifiez : keymaps.lua.
Raccourci | Mode | Description |
---|---|---|
kk | Insérer | Echap avec kk |
<leader> + r | Normale | Recharger le fichier de configuration |
<leader> + s | Normale | Enregistrer le fichier |
<leader> + q | Normale | Enregistrez (fermez toutes les fenêtres) et quittez Neovim |
<leader> + n | Normale | Ouvrir NvimTree |
<leader> + n° | Normale | Actualiser NvimTree |
<leader> + nf | Normale | Rechercher un fichier dans NvimTree |
<leader> + ff | Normale | Ouvrez Telescope pour trouver des fichiers |
<leader> + fg | Normale | Ouvrez le télescope pour faire du grep en direct |
<leader> + fb | Normale | Ouvrir le télescope pour lister les tampons |
<leader> + fh | Normale | Ouvrez le télescope pour afficher l'aide |
<leader> + fo | Normale | Ouvrir le télescope pour afficher les fichiers ouverts récemment |
<leader> + cm | Normale | Ouvrir Telescope pour lister les commits git |
<leader> + wh/j/k/l | Normale | Se déplacer dans les divisions |
mm | Normale | Ligne Commenter/Décommenter |
Il existe de nombreuses configurations de clavier par défaut, vous pouvez les vérifier à l'aide de la commande :map
. Il existe également d'autres variantes :
:nmap
pour les mappages en mode normal:vmap
pour les mappages de mode visuel:imap
pour les mappages en mode insertion La liste ci-dessus n'est pas complète. Taper :help map
dans Vim vous donnera plus d’informations.
Vous pouvez personnaliser cette configuration en créant le module custom
. Vous pouvez choisir deux manières :
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
.${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
si votre configuration personnalisée est trop longue et que vous souhaitez la séparer en plusieurs fichiers.Extrayez l’exemple de fichier personnalisé pour le point de départ. La logique est tirée de CyberNvim. Il y a un certain nombre de sections définies dans la configuration :
M.setup_sources
est utilisé pour ajouter des sources supplémentaires pour se connecter à Null-ls - vous pouvez trouver une liste de sources ici. Le paramètre b est simplement l'abréviation de null_ls.builtins.M.ensure_installed
est utilisé pour ajouter un surligneur Treesitter supplémentaire.M.plugins
est l'endroit où vous ajouterez vos propres définitions de plugin.M.configs
est la section la plus importante de votre propre configuration. C'est ici que vous pouvez définir n'importe quelle commande automatique, exiger n'importe quel fichier ou porter complètement votre configuration actuelle.M.formatting_servers
est utilisé pour configurer les règles de formatage automatique. Vous devez sélectionner le serveur de langue qui fournira des capacités de formatage automatique N'hésitez pas à déposer un problème ou à ouvrir une pull request. Vous êtes les bienvenus!