5 plugins Vim indispensables qui changeront votre flux de travail

Une chose que les utilisateurs de Vim adorent dans leur éditeur de texte préféré est son extensibilité apparemment sans fin. En plus de configurer les mappages, les paramètres et les comportements de base dans votre .vimrc , il existe une tonne de plugins impressionnants qui étendent les fonctionnalités de Vim. En tant que personne qui utilise Vim comme éditeur principal depuis environ 7 ans maintenant, je vais partager certains de ceux qui, à mon avis, sont importants pour tout utilisateur de Vim.

lire aussi: Les 10 microphones les mieux notés pour le streaming

Installation et gestion des plugins VIM

Avant de passer aux plugins que je veux couvrir, parlons de la façon d’installer et de gérer réellement les plugins dans Vim. Il existe plusieurs façons de procéder.

Prise en charge des packages natifs dans Vim 8

Depuis la sortie de Vim 8, Vim dispose désormais d’un support intégré pour les packages , que vous pouvez utiliser pour installer ces plugins. Dans cet article, je lierai un référentiel GitHub pour chaque plugin dont je parle. Avec les packages Vim 8, vous pouvez cloner la plupart d’entre eux et les ajouter de cette façon.

Vim considérera tout répertoire sous ~/.vim/packcomme un paquet. Ces packages peuvent avoir un startrépertoire dans lequel les plugins sont chargés au démarrage, et un optrépertoire avec les plugins qui doivent être chargés manuellement avec la commande :packadd.

Pour la plupart des plugins, vous pouvez git cloneleur référentiel directement ~/.vim/pack/startou ~/.vim/pack/optpour les ajouter. Vous pouvez également utiliser des sous-modules Git pour les gérer, comme décrit dans cet article de blog.

Utilisation d’un gestionnaire de plugins tel que Vundle

Il existe également des gestionnaires de plugins automatisés pour Vim comme Vundle ou vim-plug qui sont développés par la communauté. Vous en aurez besoin si vous utilisez une ancienne version de Vim, mais même en tant qu’utilisateur de Vim 8, ils sont toujours utiles car ils fournissent des fonctionnalités supplémentaires et peuvent faciliter les choses si vous utilisez beaucoup de plugins .

J’ai personnellement beaucoup utilisé Vundle au fil des ans, alors voyons comment le configurer. Vous pouvez considérer cela comme l’index zéro dans le tableau des plugins Vim géniaux couverts dans cet article.

lire Aussi: Micro pour le podcast et le streaming Sur twitch ou youtube:

Vundle nécessite Git pour fonctionner, alors assurez-vous que celui-ci est installé sur votre machine. Si vous êtes un utilisateur Windows, les responsables ont écrit un guide détaillé pour l’installer sur Windows . Sur les systèmes basés sur Unix, vous pouvez l’installer en exécutant la commande suivante :

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

Et puis en ajoutant les lignes suivantes à votre .vimrc:

set nocompatible " be iMproved, required
filetype off " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

Vous pouvez installer des plugins en lançant Vim et en exécutant :PluginInstall. Si vous souhaitez automatiser l’installation de Vundle dans votre .vimrc, par exemple lors de la configuration sur une nouvelle machine, vous pouvez ajouter quelque chose comme le script suivant, trouvé dans ce billet de blog :

" Setting up Vundle - the vim plugin bundler
    let iCanHazVundle=1
    let vundle_readme=expand('~/.vim/bundle/vundle/README.md')
    if !filereadable(vundle_readme)
        echo "Installing Vundle.."
        echo ""
        silent !mkdir -p ~/.vim/bundle
        silent !git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/vundle
        let iCanHazVundle=0
    endif

    set nocompatible              " be iMproved, required
    filetype off                  " required
    set rtp+=~/.vim/bundle/vundle/

    call vundle#begin()
    Plugin 'VundleVim/Vundle.vim'

    "Add your bundles here

    if iCanHazVundle == 0
        echo "Installing Vundles, please ignore key map error messages"
        echo ""
        :PluginInstall
    endif

    call vundle#end()

    "must be last
    filetype plugin indent on " load filetype plugins/indent settings
    colorscheme solarized
    syntax on                      " enable syntax
 
" Setting up Vundle - the vim plugin bundler end

Cela garantira automatiquement que Vundle et tous vos plugins sont configurés chaque fois que vous exécutez Vim. Passons maintenant aux bonnes choses !

plugins Vim: Syntastique

Syntastic est un plugin de vérification de syntaxe pour Vim qui exécute des fichiers via des vérificateurs de syntaxe externes et affiche les erreurs résultantes. Vous pouvez installer Syntastic avec Vundle en ajoutant la ligne suivante à vos appels .vimrcin the #beginet #endVundle :

Plugin 'Syntastic'
Erreurs d'affichage syntaxique

Comme vous pouvez le voir ici lorsque je fais une faute de frappe, dans ce cas orthographié Flaskcomme Flaks, Syntastic reprendra cela et signalera les erreurs lorsque j’écris le fichier. S’il y a une erreur de syntaxe réelle, telle qu’un deux-points manquant pour une ifinstruction, cela sera également signalé. Il ajoutera même un trait de soulignement à la fin de la ligne pour indiquer où se situe le problème.

Syntastique avec mise en surbrillance du curseur

Vous pouvez configurer un peu les paramètres de Syntastic. Essayez d’entrer la commande :help syntasticpour plus d’informations à ce sujet. Voici quelques paramètres de base par défaut que je vous recommande d’ajouter pour vous .vimrcaider à démarrer :

set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 1

Lorsque ces éléments sont activés, voici à quoi cela ressemble lorsque vous ouvrez un fichier contenant une erreur. Un autre tampon est ouvert dans une division horizontale avec des informations sur l’erreur et disparaît une fois que vous l’avez corrigé.

Erreurs de syntaxe dans leur propre tampon

Voici un manuel des vérificateurs de syntaxe avec lesquels Syntastic est compatible , alors assurez-vous que celui qui convient est installé pour la langue que vous utilisez. Pour Python, j’utilise flake8 , qui possède également son propre plugin Vim . Vous pouvez installer flake8 en exécutant pip install flake8le pip qui correspond à la version de Python que vous utilisez.

plugins Vim: Fugitif

Fugitive est un wrapper Git pour Vim qui se décrit lui-même comme “tellement génial qu’il devrait être illégal”. Vous pouvez installer Fugitive with Vundle en ajoutant la ligne suivante à vos appels .vimrcin the #beginet #endVundle :

Plugin 'https://github.com/tpope/vim-fugitive'

Avec Fugitive, vous pouvez exécuter :Git, ou même simplement :Gsuivi d’une commande Git arbitraire pour exécuter cette commande directement à partir de Vim et faire écho à la sortie dans un flux. Cela fonctionne particulièrement bien avec les commandes qui n’ont pas beaucoup de sortie.

Par exemple, voici la fonctionnalité simple d’ajouter les modifications du fichier sur lequel vous travaillez actuellement pour préparer un commit.

"git add" de Vim avec Fugitive

L’une de mes fonctionnalités préférées est que lorsque vous utilisez la :Gblamecommande, elle ouvre un tampon dans une division verticale avec toutes les git blameannotations côte à côte avec les lignes du fichier sur lequel vous travaillez. Et le défilement est même lié entre eux !

Commande fugitive "Gblame"

On dirait que je n’ai que moi-même à blâmer pour celui-là. Si vous voulez en voir plus, ce VimCast est une excellente démo qui couvre de nombreux aspects intéressants de Fugitive.

plugins Vim: NERDTree

Le NERDTree est un explorateur de système de fichiers pour Vim qui peut être utilisé pour parcourir visuellement des hiérarchies de répertoires complexes, ouvrir rapidement des fichiers pour les lire ou les modifier et effectuer des opérations de base sur le système de fichiers.

Affichage du répertoire NERDTree

Vous pouvez installer NERDTree avec Vundle en ajoutant la ligne suivante à vos appels .vimrcin the #beginet #endVundle :

Plugin 'scrooloose/nerdtree'

En exécutant la :NERDTreecommande, vous ouvrez un autre tampon divisé verticalement sur le côté de votre fichier actuel, affichant le répertoire actuel et vous permettant de naviguer dans le système de fichiers en général et d’ouvrir d’autres fichiers.

NERDTree ne crée pas de raccourcis lui-même en dehors de sa propre fenêtre, il n’interfère donc pas avec les autres raccourcis que vous avez déjà. Mais vous pouvez ajouter des raccourcis clavier à .vimrccertaines commandes NERDTree. Par exemple:

nnoremap <leader>n :NERDTreeFocus<CR>
nnoremap <C-n> :NERDTree<CR>
nnoremap <C-t> :NERDTreeToggle<CR>
nnoremap <C-f> :NERDTreeFind<CR>

Voici quelques éléments que vous pouvez ajouter à votre .vimrcpour personnaliser le comportement du fonctionnement de NERDTree :

" Start NERDTree when Vim is opened and leave the cursor in it.
autocmd VimEnter * NERDTree

" Start NERDTree when Vim is opened and put the cursor back in the other window.
autocmd VimEnter * NERDTree | wincmd p


" Open the existing NERDTree on each new tab.
autocmd BufWinEnter * silent NERDTreeMirror

" Exit Vim if NERDTree is the only window left.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
    \ quit | endif

Il existe même des plugins NERDTree tels que celui-ci qui ajoute des icônes à côté des fichiers en fonction de leur type de fichier. Dans Vim, même les plugins ont des plugins personnalisables.

plugins Vim: Emmet

Emmet est un plugin extrêmement utile pour les développeurs Web. Cela facilite grandement l’écriture et l’édition de HTML et de n’importe quel langage avec des balises. Vous pouvez installer Emmet avec Vundle en ajoutant la ligne suivante à vos appels .vimrcin the #beginet #endVundle :

Plugin 'mattn/emmet-vim'

Vous pouvez développer toutes les balises de votre choix et même utiliser certaines commandes communes intégrées, telles que html:5, en tapant <c-y>,(Ctrl+y+,).

Démo HTML d'Emmet

Voici un tutoriel rapide montrant différentes choses que vous pouvez utiliser Emmet pour faire. Comme avec n’importe quel plugin Vim, vous pouvez personnaliser son comportement dans votre fichier .vimrc. Voici quelques exemples:

let g:user_emmet_mode='n'    "only enable normal mode functions.
let g:user_emmet_mode='inv'  "enable all functions, which is equal to
let g:user_emmet_mode='a'    "enable all function in all mode.

" only enable Emmet for certain file types
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall

" redefine the trigger key (you still need to enter the trailing ,)
let g:user_emmet_leader_key='<C-Z>'

Airline 

Airline est un “lean & mean status/tabline for vim that’s light as air” | “statut/tabline maigre et moyen pour vim qui est léger comme l’air” et cela a déjà été démontré dans les captures d’écran de tous les autres exemples de cet article. Vous pouvez voir ici comment la ligne d’état change lorsque j’entre dans différents modes et fournit également de nombreuses informations contextuelles.

Démo d'affichage de la compagnie aérienne

Cette ligne se compose de plusieurs sections, chacune affichant une information. Par défaut (sans configuration) il aura cette disposition :

+-----------------------------------------------------------------------------+
| A | B |                     C                            X | Y | Z |  [...] |
+-----------------------------------------------------------------------------+
  • A : affiche le mode + des drapeaux supplémentaires comme crypt/spell/paste (INSERT)
  • B : État de l’environnement (informations VCS – branche, résumé du segment (maître), niveau de la batterie )
  • C : nom de fichier + indicateur de lecture seule (~/.vim/vimrc RO)
  • X : type de fichier
  • Y : encodage de fichier[format de fichier] (utf-8[unix])
  • Z : position actuelle dans le fichier
  • […] : sections supplémentaires (avertissement/erreurs/statistiques) de plugins externes (par exemple YCM, syntastic, …)

Vous pouvez installer Airline with Vundle en ajoutant la ligne suivante à vos appels .vimrcin the #beginet #endVundle :

Plugin 'bling/vim-airline'

:wq!

J’espère que vous avez trouvé certaines de ces informations intéressantes ou utiles. Beaucoup d’entre eux sont bien connus dans la communauté Vim, mais ce sont quelques-uns des plugins qui, à mon avis, sont indispensables pour tout utilisateur de Vim. À l’avenir, je vais écrire un autre article sur des plugins moins connus.

En tant que passionné de Vim, j’ai toujours hâte d’entendre plus de choses que je peux ajouter à mon .vimrc. Je ne me considère pas comme un expert donc il y a tout un monde de sorcellerie Vim à découvrir ! N’hésitez pas à me contacter à propos de certaines astuces de Vim que vous trouvez intéressantes, à poser des questions sur l’une d’entre elles ou à exprimer votre colère éternelle face à l’une de mes suggestions :