6 plugins Neovim qui ont finalement corrigé mon flux de travail de codage
Neovim est déjà assez puissant dès le départ, mais pour en tirer le meilleur parti, il s'agit moins d'empiler des plugins que de choisir les bons. Les plugins ci-dessous ne sont pas populaires parce qu'ils sont à la mode, mais parce qu'ils résolvent des désagréments spécifiques qui apparaissent après avoir passé suffisamment de temps dans l'éditeur (généralement plus longtemps que prévu).
Aucun des plugins n'est requis pour utiliser correctement Neovim. Ils gagnent leur place en déverrouillant des parties de l'éditeur qui n'ont d'importance que lorsque vous essayez d'en tirer le meilleur parti. Les étapes d'installation dans les sections ci-dessous supposent l'utilisation de Lazy (souvent confondu avec LazyVim), un gestionnaire de plugins largement utilisé pour Neovim.
Sommaire
Expier
La première est une découverte inattendue car je ne pensais pas que quelque chose comme ça pourrait exister sous une forme aussi propre et utilisable (et toujours aussi cohérent). Atone présente votre historique d'annulation comme un arbre que vous pouvez réellement explorer, plutôt que l'annulation, l'annulation et l'annulation habituelles jusqu'à ce que vous atteigniez la cible.
Je suis sûr que vous avez été là, lorsque vous effectuez une série de modifications, continuez à travailler pendant un certain temps, puis réalisez qu'un changement spécifique antérieur était meilleur ou du moins moins mauvais. Annuler depuis lors n’est pas une option. Atone résout exactement ce problème en visualisant chaque branche créée par vos modifications, et vous pouvez parcourir des historiques alternatifs du même fichier et le restaurer exactement dans l'état souhaité.
Son utilisation est simple, il suffit de l'exécuter :Expier et une fenêtre latérale s'ouvre avec un arbre d'annulation. Vous naviguez entre les nœuds avec la touche fléchée et restaurez un état à l'aide de la liaison de touches fournie.
L'installation est aussi simple que ceci :
return {
"XXiaoA/atone.nvim",
cmd = "Atone",
opts = {},
}
Pourquoi Neovim est mon éditeur de texte préféré et ce qui le rend si puissant
Neovim est mon outil de prédilection pour presque tout ce qui concerne le texte.
Se conformer
Peut-être que Go est responsable de cette obsession, mais j'ai besoin de code formaté. Un formatage approprié supprime tout l'encombrement (pas tout si votre code est mauvais) et maintient les différences lisibles.
Conform se définit comme un formateur léger mais puissant, et cette description tient la route dans la pratique. Au lieu de remplacer des tampons entiers, il calcule des différences minimes et applique uniquement ce qui doit être modifié. Cela préserve les marques, les plis et la position du curseur, qui peuvent sembler petits jusqu'à ce que vous expérimentiez l'alternative.
Il corrige également le mauvais comportement des formateurs LSP en interceptant leur sortie et en la convertissant en modifications incrémentielles appropriées. En outre, il peut formater des plages même si le formateur sous-jacent ne le prend pas en charge.
Pour installer et configurer, exécutez ceci :
return {
'stevearc/conform.nvim',
opts = {
lua = { "stylua" },
-- Conform will run multiple formatters sequentially
python = { "isort", "black" },
-- Use a sub-list to run only the first available formatter
javascript = { { "prettierd", "prettier" } },
markdown = { { "prettierd", "prettier" } },
typescript = { "eslint_d" },
sh = { "shfmt" },
bash = { "shfmt" },
},
config = function()
vim.api.nvim_create_user_command("Reformat", function(args)
local range = nil
if args.count ~= -1 then
local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)(1)
range = {
start = { args.line1, 0 },
("end") = { args.line2, end_line:len() },
}
end
require("conform").format({ async = true, lsp_fallback = true, range = range })
end, { range = true })
Éclair
Tout votre temps dans Neovim n'est pas consacré à l'écriture de code ; une grande partie est dépensée pour le parcourir (malheureusement), et Flash se concentre sur cela.
À un niveau de base, il améliore les mouvements f, F, t, T intégrés en rendant les cibles de saut plus claires et plus précises, mais il va également plus loin que la navigation des personnages. Il vous permet d'accéder à des mots, des lignes, des nœuds de syntaxe ou des modèles définis par des expressions régulières.
Ce qui le rend fascinant, c'est la façon dont il s'intègre au mode opérateur en attente. Vous démarrez un opérateur, invoquez Flash, puis appliquez cet opérateur exactement là où vous le souhaitez, sans aucune étape intermédiaire gênante. Il rend également la recherche contextuelle, vous permettant de passer d'une fonction à une autre en fonction du tampon.
Pour installer Flash :
return {
"folke/flash.nvim",
event = "verylazy",
---@type flash.config
opts = {},
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "flash" },
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "flash treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "remote flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "treesitter search" },
{ "", mode = { "c" }, function() require("flash").toggle() end, desc = "toggle flash search" },
},
}
Petits diagnostics en ligne
Les diagnostics en ligne dans Neovim sont vraiment utiles, mais souvent lorsqu'ils sont longs, très longs, ils sont coupés et vous n'en voyez qu'une partie. Les choses empirent s’il s’agit d’un langage très verbeux. Ce plugin résout ce problème.
Il permet aux messages de diagnostic de se développer correctement, prend en charge plusieurs lignes et reste lisible sans aucune interaction supplémentaire. Vous pouvez voir l'intégralité du message en direct là où vous travaillez, ce qui simplifie considérablement le débogage.
Pour installer TiD, utilisez le code suivant :
return {
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy",
priority = 1000,
opts = {
add_messages = {
display_count = true,
},
multilines = {
enabled = true,
always_show = true,
},
show_source = {
enabled = true,
}
},
}
Néogite
J'ai installé Neogit pendant longtemps sans vraiment l'utiliser. Surtout parce que les habitudes sont difficiles à changer. Cela a changé une fois que j'ai ajouté une combinaison de touches et que je me suis engagé à l'utiliser comme interface Git principale.
Neogit fournit une interface utilisateur Git ciblée dans Neovim. Il vous permet d'inspecter l'état du référentiel, de préparer des morceaux, d'écrire des validations, de gérer des branches et de résoudre des conflits sans changer de contexte. L'exécuter dans une fenêtre flottante le maintient visuellement contenu et évite de prendre le contrôle de l'écran.
Pour installer Neogit :
return {
"NeogitOrg/neogit",
dependencies = {
"nvim-lua/plenary.nvim", -- required
"sindrets/diffview.nvim", -- optional - Diff integration
"nvim-telescope/telescope.nvim", -- optional
},
opts = {
kind = "floating",
},
config = true
}
11 astuces Vim qui vous feront gagner des heures de temps d'édition
Soyez un pro de Vim.
Barbare
La plupart d’entre nous sont multitâches et n’ont généralement pas un seul fichier ouvert. Bien au contraire, nous avons en règle générale plusieurs fichiers ouverts. C'est presque la même chose qu'avec les onglets de votre navigateur. Barbar reconnaît cette réalité et vous donne une barre tampon appropriée.
Il fournit des onglets réorganisables, des icônes, un indicateur d'état Git et un mode de sélection de tampon qui transforme la commutation de tampon en mémoire musculaire. En mode BufferPick, chaque onglet se voit attribuer une lettre qui reste stable pendant toute la durée de vie de ce tampon. Au bout d'un moment, vous arrêtez de penser aux noms de fichiers et sautez directement (vos mains s'en souviennent avant votre cerveau).
Pour installer Barbar, utilisez ce code :
return{
{
'romgrk/barbar.nvim',
dependencies = {
'lewis6991/gitsigns.nvim',
'nvim-tree/nvim-web-devicons',
},
init = function() vim.g.barbar_auto_setup = false end,
opts = {
sidebar_filetypes = {
('neo-tree') = { event = 'BufWipeout' }
},
},
},
}
Vus isolément, ces plugins peuvent ne pas sembler si remarquables, et c'est précisément pourquoi ils sont importants. Chacun de ces plugins supprime une limitation petite mais persistante dans l'utilisation quotidienne de Neovim, de l'historique des annulations et du formatage à la navigation et à la gestion des tampons. Ensemble, ils aident à aller au-delà de la simple utilisation de Neovim et à en tirer le meilleur parti.
