Table des matières
Introduction
Commencer une configuration nvim, peut devenir un vrai parcour du combatant, surtout quand on est néophyte.
Si on ne veut pas se décourager au bout de deux heures, il vaut mieux commencer par utiliser des choses qui sont déjà toute prêtes.
Les plugins, c'est l'occasion d'améliorer grandement l'expérience nvim, sans trop d'efforts de configuration.
Installer Packer
La première chose à faire pour installer des plugins est d'installer un gestionnaire de plugins.
Mon gestionnaire de prédilection est Packer, que l'on peut trouver sur son repository ici.
Pour l'installer, je peux directement le cloner avec git:
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
Ou je peux rajouter un fichier ~/.config/nvim/lua/plugins.lua
dans ma configuration et commencer directement à l'utiliser.
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local packer_bootstrap = ensure_packer()
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
-- add your plugins here...
if packer_bootstrap then
require('packer').sync()
end
end)
Une fois ce fichier sauvegardé, je relance nvim pour prendre en compte les modifications et installer Packer, puis je lance la commande suivante pour installer les nouveaux plugins si besoin:
:PackerSync
Et voilà !
Configuration supplémentaire
Je peux rajouter ce bout de code pour executer un PackerCompile à chaque modification du fichier plugins.lua
:
vim.cmd([[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerCompile
augroup end
]])
A chaque fois que je vais modifier ce fichier, il se chargera de synchroniser mes plugins automatiquement sans que j'ai à faire un :PackerSync
.
Rajouter des plugins
Pour rajouter des plugins, rien de plus simple, il suffit de rajouter
use "my/plugin"
directement dans la fonction startup de packer, et le tour est joué.
Certain plugins demandent une configuration supplémentaire, il faut se référer à la documentation de chaque plugins pour les installer proprements.
Pour executer quelque chose après le chargement d'un plugin, je peux rajouter l'option config
dans le use
de ce dernier:
use {
"my/plugin",
config = function()
-- configure your plugin here...
end,
}
C'est utile pour toute configuration d'un plugin après son initialisation.
Mais on peut aussi ajouter la configuration d'un plugin dans un fichier dédié. Par example, je vais créer le fichier
~/.config/nvim/lua/plugins/myplugin.lua
et y rajouter le code suivant:
local status_ok, myplugin = pcall(require, "my-plugin")
if not status_ok then
return
end
myplugin.setup({
option = "toto",
})
La fonction pcall
me sert à inclure de manière sécurisé le plugin sans faire planter toute la configuration.
Ce qui évite les erreurs si le plugin n'est pas encore installé via le :PackerSync
.
Je ne dois pas oublier d'inclure le fichier depuis le init.lua
comme ceci:
require "plugins.myplugin";
Conclusion
Pour bien commencer une configuration nvim, sans me décourager dès le début, je préfère trouver et installer des plugins qui améliorent l'expérience nvim.
Le repository https://github.com/rockerBOO/awesome-neovim référence même les plugins les plus populaires.
Par la suite, je vais améliorer ma configuration, et qui sait, peut être qu'un jour, je n'aurai plus besoin d'autent de plugins?