GNU/Linux >> Tutoriels Linux >  >> Linux

Les cinq meilleurs plugins Vim pour les administrateurs système

L'année dernière, j'ai écrit l'article 5 plugins Vim utiles pour les développeurs pour Opensource.com. Cet article suit une idée similaire mais se concentre sur les plugins qui rendent les administrateurs système plus productifs, quels que soient les scripts, le langage de programmation ou les frameworks qu'ils utilisent. Il existe une autre classe de plugins Vim axés sur la complétion de code et la vérification de la syntaxe qui ne sont intentionnellement pas couverts dans cet article. Ils feront l'objet d'un autre article.

De plus, cet article ne fournit pas d'instructions d'installation pour ces plugins. Vous pouvez utiliser le gestionnaire de paquets natif de Vim 8 ou votre gestionnaire de plugins préféré. Si vous voulez un gestionnaire de plugins sans fioritures pour Vim, jetez un œil à Pathogen. Il fournit un moyen standard d'installer des plugins en clonant leurs référentiels directement sous le .vim/bundle répertoire avec génération automatique d'aide.

1. Compagnie aérienne Vim

Vim Airline est un plugin qui remplace la ligne d'état standard de Vim par une barre d'état élégante et utile. Vim Airline est pratique et présente des informations utiles sur le fichier sur lequel vous travaillez, notamment le nom du fichier et l'état de la sauvegarde, le mode Vim, le type de fichier, l'encodage, la position, le nombre de mots, etc.

Vim Airline est rapide et léger. Il affiche des informations pertinentes sans compromettre les performances de Vim. L'utilisation de Vim Airline améliore votre productivité en fournissant des informations qui nécessiteraient plus de temps pour être obtenues en un coup d'œil.

Après l'installation, Vim Airline active une configuration de base qui ne nécessite aucune modification des fichiers de configuration de Vim. Voici la barre d'état standard avec la compagnie aérienne :

Il s'intègre nativement avec d'autres plugins pour présenter des informations supplémentaires. Par exemple, si vous avez Vim Gitgutter (voir #4 Vim Gitgutter ci-dessous) ou Vim Fugitive (voir #5 Vim Fugitive ci-dessous), Airline affiche également des informations liées à Git, telles que le nom de la branche et le statut du diff.

Pour utiliser des icônes spéciales, telles que l'icône de la branche Git, installez le package de polices Powerline et activez-le avec Vim Airline. Ajoutez ensuite cette ligne à votre .vimrc fichier de configuration :

let g:airline_powerline_fonts=1

En plus de la barre d'état, Vim Airline affiche éventuellement une ligne d'onglet en haut contenant le nom de tous les onglets ou tampons ouverts :

Pour activer cette fonctionnalité, ajoutez cette ligne à .vimrc :

let g:airline#extensions#tabline#enabled = 1

Enfin, Vim Airline fournit des thèmes pour donner une flexibilité supplémentaire à la fonctionnalité et à l'apparence de la barre d'état. Pour plus d'informations, consultez le référentiel vim-airline-theme.

Pour plus d'informations sur ce plugin et des options supplémentaires qui peuvent être utiles pour votre cas d'utilisation, consultez le référentiel officiel.

2. NERDTtree

NERDTree est un explorateur de système de fichiers pour Vim qui vous permet de parcourir la structure des répertoires, vous aidant à trouver et à gérer des fichiers et des répertoires directement dans l'interface de Vim. NERDTree remplace l'explorateur de fichiers natif de Vim netrw. NERDTree inclut des fonctionnalités supplémentaires et des valeurs par défaut sensibles, ce qui facilite le démarrage sans ajouter de configuration à votre .vimrc fichier.

Après l'installation, vous pouvez utiliser NERDTree en tapant la commande :NERDTree . Il s'ouvre comme une fenêtre latérale avec le répertoire actuel sélectionné. Pour le fermer, vous pouvez taper la commande :NERDTreeClose . Vous pouvez également utiliser :NERDTreeToggle pour basculer entre les fenêtres ouvertes et fermées. Vous pouvez même mapper cette commande sur une autre touche pour faciliter l'ouverture et la fermeture de NERDTree. Par exemple, pour utiliser la touche de fonction F5 pour contrôler NERDTree, ajoutez ce mappage à votre fichier de configuration :

map <F5> :NERDTreeToggle<CR>

Appuyez maintenant sur F5 pour ouvrir NERDTree :

Avec NERDTree ouvert, vous pouvez naviguer dans la structure des répertoires à l'aide des touches de navigation Vim j et k . Appuyez sur Entrée sur un répertoire pour le développer ou le réduire. Par défaut, NERDTree affiche les répertoires sous forme d'arborescence. Appuyez sur Entrée sur un fichier normal pour l'ouvrir à l'aide de la fenêtre d'origine. Vous pouvez également appuyer sur i pour ouvrir le fichier en utilisant une division horizontale ou s pour une séparation verticale. Appuyez sur ? pour voir l'aide avec une liste complète des commandes.

Une autre fonction utile consiste à appuyer sur m pour voir le menu. Vous pouvez ensuite utiliser NERDTree pour exécuter des opérations sur le système de fichiers telles que créer, renommer, copier et déplacer des fichiers et des répertoires :

NERDTree Menu. Use j/k/enter, or the shortcuts indicated
=========================================================
> (a)dd a childnode
  (m)ove the current node
  (d)elete the current node
  (r)eveal the current node in file manager
  (o)pen the current node with system editor
  (c)opy the current node
  print (p)ath to screen
  (l)ist the current node

NERDTree améliore votre productivité en vous permettant de rechercher et de gérer des fichiers dans Vim sans avoir besoin d'accéder à la ligne de commande ou à une autre application d'exploration de système de fichiers.

[ Vous pourriez également apprécier les bases de Linux :un guide du débutant pour l'édition de texte avec vim ]

3. FzfVim

NERDTree est un excellent plugin pour vous aider à naviguer dans la structure des répertoires et à trouver des fichiers à utiliser dans Vim. Cependant, cela n'est pas utile si vous avez une grande structure de répertoires ou si vous recherchez un fichier sans savoir exactement où il se trouve. Dans de tels cas, un outil de recherche floue est utile.

fzf.vim est un plugin qui encapsule le programme fuzzy finder en ligne de commande fzf, vous permettant de l'utiliser directement dans Vim. Fzf est une application de recherche floue rapide et portable écrite en Go. C'est une exigence pour le plugin Vim, alors assurez-vous de l'installer en premier.

En plus de Fzf, vous pouvez installer le programme bat pour activer la coloration syntaxique dans la fenêtre d'aperçu affichée par Fzf.

Par défaut, fzf.vim ouvre la fenêtre de recherche en bas de l'écran. Pour changer cela et déplacer la fenêtre au milieu, en augmentant la taille de la fenêtre de prévisualisation, ajoutez ces deux lignes à votre .vimrc fichier de configuration :

let g:fzf_preview_window = 'right:50%'
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6  }  }

Maintenant, lancez une recherche floue avec tous les fichiers du répertoire courant en tapant la commande :Files . fzf.vim ouvre une fenêtre listant tous les fichiers disponibles :

Pour filtrer les options disponibles, commencez à saisir n'importe quel caractère de n'importe quelle partie du nom de fichier, de l'extension ou du répertoire. Fzf filtre automatiquement les résultats pour vous. Par exemple, si vous vous souvenez que le fichier que vous voulez est un fichier "YAML", commencez à taper y puis m et voyez comment les résultats changent :

Notez qu'il n'est pas nécessaire que les caractères soient ensemble ou dans le même ordre que vous avez tapé. C'est le but de la recherche floue. Lorsque vous êtes satisfait du filtre, vous pouvez utiliser les touches fléchées pour sélectionner et prévisualiser les entrées restantes et appuyer sur Entrée pour ouvrir celui que vous souhaitez. Vous pouvez également utiliser Ctrl+T , Ctrl+X , ou Ctrl+V pour ouvrir le fichier dans un nouvel onglet, fractionné ou fractionné verticalement, respectivement.

L'utilisation de fzf.vim pour rechercher des fichiers est d'une grande aide. Cependant, fzf.vim peut faire bien plus que localiser des fichiers. Il enveloppe le fzf avec d'autres fonctionnalités de Vim ou d'autres commandes externes, vous permettant de rechercher plus de fichiers dans la structure de répertoires actuelle.

Par exemple, utilisez la commande :Buffers pour rechercher une liste des tampons actuellement ouverts. Avec :GFiles, fzf.vim vous permet de rechercher tous les fichiers gérés par le référentiel Git actuel. La commande :Lines vous permet d'exécuter une recherche floue dans toutes les lignes de chaque tampon chargé. Appuyez sur Entrée vous amène à la ligne spécifique dans le bon tampon :

fzf.vim vous permet même de rechercher des raccourcis clavier Vim avec la commande :Maps . Si vous avez oublié à quelle combinaison de touches vous avez mappé une commande spécifique, démarrez fzf.vim, tapez quelques lettres de la commande, et il vous montrera la combinaison de touches mappée. Appuyez sur Entrée sur l'entrée exécute la commande. Par exemple, pour trouver quelle clé nous avons mappée pour Vim NERDTree dans Vim NERDTree (voir #2 NERDTree ci-dessus) :

Fzf est rapide et l'intégration du plug-in fzf.vim à Vim en fait un excellent outil pour vous aider à rechercher des fichiers et d'autres éléments. Ce plugin a de nombreuses autres fonctionnalités. Assurez-vous de consulter l'aide en tapant la commande :h fzf pour une liste complète.

4. Vim Gouttier

Le plugin Vim Gitgutter est utile pour ceux qui utilisent Git comme système de contrôle de version. Il affiche la sortie de Git diff sous forme de symboles dans la "gouttière" - la colonne de signe où Vim présente des informations supplémentaires, telles que les numéros de ligne. Par exemple, considérez ce fichier de tâche Ansible comme la version validée actuelle dans Git :

  1 ---
  2 # tasks file for mywebapp
  3 
  4 - name: Include OS-specific variables.
  5   include_vars: "{{ ansible_os_family }}.yaml"
  6  
  7 - name: Install http package
  8   yum:
  9     name: "{{ httpd_package }}"
 10 
 11 - name: Ensure httpd svc started
 12   service:
 13     name: "{{ httpd_service }}"
 14     state: started
 15     enabled: yes

Après avoir apporté quelques modifications, Vim Gitgutter affiche les symboles suivants dans la gouttière :

    1 ---
    2 # tasks file for mywebapp
    3 
    4 - name: Include OS-specific variables.
    5   include_vars: "{{ ansible_os_family }}.yaml"
    6 
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

Le - indique qu'une ligne a été supprimée après la ligne 15. Le symbole ~ indique que la ligne sept a été modifiée, et le + signe indique que la ligne dix a été ajoutée.

De plus, Vim Gitgutter vous permet de naviguer entre les "hunks" (modifications individuelles apportées au fichier) avec [c et ]c , ou même mettre en scène des groupes individuels pour la validation en appuyant sur Leader+hs .

Vim Gitgutter s'intègre également automatiquement à Vim-Airline, fournissant un résumé des changements dans la ligne d'état :

Vim-Airline active cette configuration par défaut, et vous n'avez rien à ajouter à votre .vimrc fichier pour le faire fonctionner.

Vim Gitgutter fournit un retour visuel immédiat des modifications, et c'est un excellent ajout à votre boîte à outils si vous utilisez Git.

5. Vim Fugitif

Vim Fugitive est un autre excellent plugin pour ceux qui essaient d'intégrer Git dans le flux de travail Vim. Ce plugin est un wrapper Git qui vous permet d'exécuter des commandes Git directement depuis l'interface de Vim. Ce plugin a de nombreuses fonctionnalités, alors assurez-vous de consulter la page Github pour plus d'informations.

Voici un exemple de flux de travail Git de base utilisant Vim Fugitive. Considérez le fichier de tâches Ansible que nous avons utilisé comme exemple dans Vim Gitgutter (voir #4 Vim Gitgutter ci-dessus). Vous pouvez utiliser git blame dans Vim en tapant la commande :Gblame :

7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    1 ---
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    2 # tasks file for mywebapp
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    3
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    4 - name: Include OS-specific variables.
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    5   include_vars: "{{ ansible_os_family }}.yaml"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    6
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|~   7 - name: Ensure httpd package installed
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    8   yum:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    9     name: "{{ httpd_package }}"
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|+  10     state: present
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   11
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   12 - name: Ensure httpd svc started
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   13   service:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   14     name: "{{ httpd_service }}"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|_  15     state: started

Vous pouvez voir qui a validé toutes les lignes, à l'exception des lignes sept et dix, qui n'ont pas encore été validées. Maintenant, vérifiez l'état du référentiel en tapant :Gstatus :

  1 Head: master
  2 Push: origin/master
  3 
  4 Unstaged (1)
  5 M main.yaml
~
___________________________________________________________________________________________
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

Vim Fugitive ouvre une fenêtre partagée avec le résultat de git status . Vous pouvez préparer un fichier pour validation en appuyant sur - clé sur la ligne avec le nom du fichier. Vous pouvez réinitialiser le statut en appuyant sur - de nouveau. Le message est mis à jour pour refléter le nouveau statut :

  1 Head: master
  2 Push: origin/master
  3 
  4 Staged (1)
  5 M main.yaml

Notez que le statut sur la ligne 4 est passé de Unstaged à Mise en scène . Vous pouvez maintenant utiliser la commande :Gcommit pour valider les modifications. Vim Fugitive ouvre un autre split qui vous permet de saisir un message de commit :

  1 Update Ansible tasks file
  2 # Please enter the commit message for your changes. Lines starting
  3 # with '#' will be ignored, and an empty message aborts the commit.
  4 #
  5 # On branch master
  6 # Changes to be committed:
  7 #       modified:   main.yaml
  8 #

Enregistrez le fichier avec :wq pour terminer le commit. Fugitive affiche un message de confirmation avec le nouveau hash de commit :

[master f7908cf] Update Ansible tasks file
 1 file changed, 2 insertions(+), 2 deletions(-)
Press ENTER or type command to continue

Vous pouvez utiliser :Gstatus à nouveau pour voir le résultat et :Gpush pour mettre à jour le dépôt distant avec le nouveau commit :

  1 Head: master
  2 Push: origin/master
  3
  4 Unpushed to origin/master (1)
  5 f7908cf Update Ansible tasks file

Si vous aimez Vim Fugitive et souhaitez en savoir plus, le référentiel officiel contient des liens vers des screencasts montrant des fonctionnalités et des flux de travail supplémentaires.

Bonus :Vim Floaterm

Vim Floaterm est un plugin qui vous permet d'utiliser la fonctionnalité de terminal Vim 8 comme une fenêtre contextuelle.

Parfois, vous devez taper des commandes dans un terminal pour effectuer vos tâches. Avant Vim 8 fournissait le :terminal fonctionnalité, la solution consistait à passer à un autre écran ou à quitter Vim pour utiliser la ligne de commande. Avec le terminal Vim intégré, vous pouvez ouvrir une fenêtre de terminal directement depuis Vim. Cependant, cette fenêtre fait partie de votre zone d'édition ou est trop petite, et vous devez la changer constamment.

Vim Floaterm résout ces problèmes en créant le terminal sous la forme d'une fenêtre flottante que vous pouvez afficher ou masquer chaque fois que vous en avez besoin. Utilisez la commande :FloatermNew pour créer un nouveau terminal flottant et :FloatermHide pour le cacher. Vous pouvez également utiliser :FloatermToggle pour basculer entre les états. Un terminal flottant ressemble à ceci :

Pour faciliter l'affichage et le masquage du terminal flottant, vous pouvez mapper la commande sur une autre touche. Par exemple, pour utiliser la touche de fonction F12 pour contrôler Floaterm, ajoutez cette configuration à votre .vimrc fichier :

let g:floaterm_keymap_toggle = '<F12>'

Vous pouvez également augmenter la taille du terminal flottant en fournissant la largeur et la hauteur en pourcentage de la taille de l'écran Vim avec ces deux lignes de configuration :

let g:floaterm_width = 0.9
let g:floaterm_height = 0.9

Cette configuration crée un terminal flottant qui prend 90% de la taille de l'écran de Vim. Floaterm fournit de nombreuses fonctionnalités supplémentaires et une intégration avec d'autres plugins et outils de ligne de commande. Consultez l'aide avec :h floaterm-contents ou le référentiel officiel pour plus d'informations.

[ Vous voulez tester vos compétences d'administrateur système ? Faites une évaluation des compétences aujourd'hui. ] 

Quelle est la prochaine ?

Dans cet article, nous avons passé en revue cinq plugins, plus un bonus, qui aident les administrateurs système à améliorer leurs flux de travail et à augmenter leur productivité lors de l'utilisation de Vim.

Vim est un superbe éditeur qui fournit un certain nombre de fonctionnalités prêtes à l'emploi. L'utilisation de plugins ajoute de nouvelles fonctionnalités, ce qui facilite l'adaptation de Vim à des workflows spécifiques.

Les plugins de cet article se concentrent sur les fonctionnalités générales, telles que la localisation des fichiers, la fourniture d'informations et la gestion des fichiers sous contrôle de version dans Git. Il existe d'autres classes de plugins pour gérer différents aspects de la configuration de Vim. Dans le prochain article, nous parlerons de la complétion de code et de la vérification de la syntaxe.

Un merci spécial à mon collègue David Ward pour m'avoir présenté les plugins fzf.vim et Vim Floaterm.


Linux
  1. Les meilleurs outils Linux pour les écrivains

  2. 10 guides de conteneurs pour les administrateurs système

  3. 3 conseils d'auto-évaluation solides pour les administrateurs système

  4. Principales commandes Linux en une ligne, personnalisation des images de machine virtuelle et autres conseils pour les administrateurs système

  5. Top 15 des articles dont les administrateurs système sont reconnaissants

Installer Vundle :le gestionnaire de plugins pour Vim

Principes de base de Kubernetes pour les administrateurs système

Les cinq meilleures applications de chat pour les utilisateurs d'Ubuntu

30 exercices d'autorisations Linux pour les administrateurs système

Top 25 des commandes Vim pour Linux

Top 10 des meilleurs plugins d'éditeur de texte Gedit pour les programmeurs et le codage