GNU/Linux >> Linux Esercitazione >  >> Linux

I primi cinque plugin di Vim per gli amministratori di sistema

L'anno scorso ho scritto l'articolo 5 utili plugin Vim per sviluppatori per Opensource.com. Questo articolo segue un'idea simile, ma si concentra sui plug-in che rendono gli amministratori di sistema più produttivi, indipendentemente dallo scripting, dal linguaggio di programmazione o dai framework utilizzati. C'è un'altra classe di plugin Vim incentrati sul completamento del codice e sul controllo della sintassi che intenzionalmente non sono trattati in questo articolo. Saranno l'argomento di un altro post.

Inoltre, questo articolo non fornisce istruzioni per l'installazione di questi plugin. Puoi usare il gestore di pacchetti nativo di Vim 8 o il tuo gestore di plugin preferito. Se vuoi un gestore di plugin senza fronzoli per Vim, dai un'occhiata a Pathogen. Fornisce un modo standard per installare i plugin clonando i loro repository direttamente sotto .vim/bundle directory con generazione automatica della guida.

1. Compagnia aerea Vim

Vim Airline è un plug-in che sostituisce la riga di stato standard di Vim con una barra di stato elegante e utile. Vim Airline è conveniente e presenta informazioni utili sul file su cui stai lavorando, inclusi il nome del file e lo stato di salvataggio, la modalità Vim, il tipo di file, la codifica, la posizione, il conteggio delle parole e altro.

Vim Airline è veloce e leggero. Visualizza le informazioni rilevanti senza compromettere le prestazioni di Vim. L'utilizzo di Vim Airline migliora la tua produttività fornendo informazioni che richiederebbero più tempo per essere ottenute a colpo d'occhio.

Dopo l'installazione, Vim Airline abilita una configurazione di base che non richiede alcuna modifica ai file di configurazione di Vim. Ecco la barra di stato standard con Compagnia aerea:

Si integra in modo nativo con altri plugin per presentare informazioni aggiuntive. Ad esempio, se hai Vim Gitgutter (vedi n. 4 Vim Gitgutter di seguito) o Vim Fugitive (vedi n. 5 Vim Fugitive di seguito), la compagnia aerea mostra anche informazioni relative a Git, come il nome della filiale e lo stato diff.

Per utilizzare icone speciali, come l'icona del ramo Git, installa il pacchetto di caratteri Powerline e abilitalo con Vim Airline. Quindi aggiungi questa riga al tuo .vimrc file di configurazione:

let g:airline_powerline_fonts=1

Oltre alla barra di stato, Vim Airline mostra opzionalmente una linea di tabulazione nella parte superiore contenente il nome di tutte le schede o buffer aperti:

Per abilitare questa funzione, aggiungi questa riga a .vimrc :

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

Infine, Vim Airline fornisce temi per dare ulteriore flessibilità alla funzionalità e all'aspetto della barra di stato. Per ulteriori informazioni, controlla il repository vim-airline-theme.

Per ulteriori informazioni su questo plugin e opzioni aggiuntive che potrebbero essere utili per il tuo caso d'uso, consulta il repository ufficiale.

2. NERDTree

NERDTree è un esploratore di filesystem per Vim che ti permette di sfogliare la struttura delle directory, aiutandoti a trovare e gestire file e directory direttamente all'interno dell'interfaccia di Vim. NERDTree è un sostituto del file explorer nativo di Vim netrw. NERDTree include funzionalità aggiuntive e impostazioni predefinite ragionevoli, rendendo più facile iniziare senza aggiungere alcuna configurazione al tuo .vimrc file.

Dopo l'installazione, puoi utilizzare NERDTree digitando il comando :NERDTree . Si apre come una finestra laterale con la directory corrente selezionata. Per chiuderlo, puoi digitare il comando :NERDTreeClose . Puoi anche usare :NERDTreeToggle per passare da una finestra aperta a una chiusa. Puoi anche mappare questo comando su un'altra chiave per facilitare l'apertura e la chiusura di NERDTree. Ad esempio, per utilizzare il tasto funzione F5 per controllare NERDTree, aggiungi questa mappatura al tuo file di configurazione:

map <F5> :NERDTreeToggle<CR>

Ora premi F5 per aprire NERDTree:

Con NERDTree aperto, puoi navigare nella struttura della directory usando i tasti di navigazione di Vim j e k . Premi Invio su una directory per espanderla o comprimerla. Per impostazione predefinita, NERDTree mostra le directory in un formato ad albero. Premi Invio su un file normale per aprirlo utilizzando la finestra originale. Puoi anche premere i per aprire il file utilizzando una divisione orizzontale o s per una divisione verticale. Premi ? per vedere la guida con un elenco completo di comandi.

Un'altra funzione utile è premere m per vedere il menù È quindi possibile utilizzare NERDTree per eseguire operazioni sul filesystem come la creazione, la ridenominazione, la copia e lo spostamento di file e directory:

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 migliora la tua produttività consentendoti di trovare e gestire i file all'interno di Vim senza richiedere l'accesso alla riga di comando o ad un'altra applicazione di esplorazione del file system.

[ Potresti anche divertirti con Nozioni di base su Linux:una guida per principianti alla modifica del testo con vim ]

3. Fzf Vim

NERDTree è un ottimo plugin per aiutarti a navigare nella struttura delle directory e trovare i file per lavorare in Vim. Tuttavia, non è utile se hai una struttura di directory di grandi dimensioni o se stai cercando un file senza sapere esattamente dove si trova. In questi casi, è utile un cercatore sfocato.

fzf.vim è un plugin che racchiude il programma fuzzy finder della riga di comando fzf, permettendoti di usarlo direttamente all'interno di Vim. Fzf è un'applicazione di ricerca fuzzy veloce e portatile scritta in Go. È un requisito per il plugin Vim, quindi assicurati di installarlo prima.

Oltre a Fzf, puoi installare il programma bat per abilitare l'evidenziazione della sintassi nella finestra di anteprima visualizzata da Fzf.

Per impostazione predefinita, fzf.vim apre la finestra di ricerca nella parte inferiore dello schermo. Per cambiare questo e spostare la finestra al centro, aumentando le dimensioni della finestra di anteprima, aggiungi queste due righe al tuo .vimrc file di configurazione:

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

Ora, esegui una ricerca fuzzy con tutti i file nella directory corrente digitando il comando :Files . fzf.vim apre una finestra che elenca tutti i file disponibili:

Per filtrare le opzioni disponibili, inizia a digitare qualsiasi carattere da qualsiasi parte del nome file, dell'estensione o della directory. Fzf filtra automaticamente i risultati per te. Ad esempio, se ricordi che il file che desideri è un file "YAML", inizia a digitare y quindi m e guarda come cambiano i risultati:

Nota che non richiede che i caratteri siano insieme o nello stesso ordine in cui hai digitato. Questo è l'obiettivo con la ricerca sfocata. Quando sei soddisfatto del filtro, puoi utilizzare i tasti freccia per selezionare e visualizzare in anteprima le voci rimanenti e premere Invio per aprire quello desiderato. Puoi anche usare Ctrl+T , CTRL+X o CTRL+V per aprire il file rispettivamente in una nuova scheda, divisa o divisa verticale.

L'uso di fzf.vim per cercare i file è di grande aiuto. Tuttavia, fzf.vim può fare molto di più che individuare i file. Avvolge il fzf comando con altre funzionalità di Vim o altri comandi esterni, consentendoti di cercare più di file nella struttura di directory corrente.

Ad esempio, usa il comando :Buffers per cercare un elenco di buffer aperti correnti. Con :GFiles, fzf.vim ti consente di cercare tutti i file gestiti dal repository Git corrente. Il comando :Lines ti consente di eseguire una ricerca fuzzy in tutte le righe da ogni buffer caricato. Premendo Invio ti porta alla riga specifica nel buffer corretto:

fzf.vim ti consente anche di cercare le associazioni di tasti Vim con il comando :Maps . Se hai dimenticato a quale combinazione di tasti hai mappato un comando specifico, avvia fzf.vim, digita alcune lettere del comando e ti mostra la combinazione di tasti mappata. Premendo Invio sulla voce esegue il comando. Ad esempio, per trovare quale chiave abbiamo mappato per Vim NERDTree in Vim NERDTree (vedi #2 NERDTree sopra):

Fzf è veloce e l'integrazione del plug-in fzf.vim con Vim lo rende uno strumento eccellente per aiutare a trovare file e altri elementi. Questo plugin ha molte altre funzionalità. Assicurati di consultare la guida digitando il comando :h fzf per un elenco completo.

4. Vim Gitgutter

Il plugin Vim Gitgutter è utile per chi usa Git come sistema di controllo della versione. Mostra l'output di Git diff come simboli nella "grondaia", la colonna del segno in cui Vim presenta informazioni aggiuntive, come i numeri di riga. Ad esempio, considera questo file di attività Ansible come la versione impegnata corrente in 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

Dopo aver apportato alcune modifiche, Vim Gitgutter mostra i seguenti simboli nella grondaia:

    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

Il - il simbolo mostra che una riga è stata cancellata dopo la riga 15. Il ~ il carattere mostra che la riga sette è stata modificata e il + il segno indica che la riga dieci è stata aggiunta.

Inoltre, Vim Gitgutter ti consente di navigare tra i "pezzi" - singole modifiche apportate al file - con [c e ]c o anche mettere in scena singoli pezzi per il commit premendo Leader+hs .

Vim Gitgutter si integra anche automaticamente con Vim-Airline, fornendo un riepilogo delle modifiche nella riga di stato:

Vim-Airline abilita questa configurazione per impostazione predefinita e non è necessario aggiungere nulla al tuo .vimrc file per farlo funzionare.

Vim Gitgutter fornisce un feedback visivo immediato per le modifiche ed è un'ottima aggiunta alla tua cassetta degli attrezzi se usi Git.

5. Vim Fuggitivo

Vim Fugitive è un altro ottimo plugin per coloro che cercano di incorporare Git nel flusso di lavoro di Vim. Questo plugin è un wrapper Git che ti permette di eseguire comandi Git direttamente dall'interfaccia di Vim. Questo plugin ha molte funzionalità, quindi assicurati di controllare la pagina Github per ulteriori informazioni.

Ecco un esempio di flusso di lavoro Git di base che utilizza Vim Fugitive. Considera il file delle attività Ansible che abbiamo usato come esempio in Vim Gitgutter (vedi n. 4 Vim Gitgutter sopra). Puoi usare git blame in Vim digitando il comando :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

Puoi vedere chi ha eseguito il commit di tutte le righe, eccetto le righe sette e dieci, che non sono state ancora impegnate. Ora controlla lo stato del repository digitando :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 apre una finestra divisa con il risultato di git status . Puoi organizzare un file per il commit premendo il tasto - tasto sulla riga con il nome del file. Puoi ripristinare lo stato premendo - ancora. Il messaggio viene aggiornato per riflettere il nuovo stato:

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

Nota che lo stato sulla riga quattro è cambiato da Unstaged a In scena . Ora puoi usare il comando :Gcommit per confermare le modifiche. Vim Fugitive apre un altro split che ti permette di inserire un messaggio di 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 #

Salva il file con :wq per completare il commit. Fugitive mostra un messaggio di conferma con il nuovo hash di commit:

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

Puoi usare :Gstatus di nuovo per vedere il risultato e :Gpush per aggiornare il repository remoto con il nuovo commit:

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

Se ti piace Vim Fugitive e vuoi saperne di più, il repository ufficiale ha collegamenti a screencast che mostrano funzionalità e flussi di lavoro aggiuntivi.

Bonus:Vim Floaterm

Vim Floaterm è un plug-in che ti consente di utilizzare la funzionalità del terminale Vim 8 come finestra popup.

A volte devi digitare i comandi in un terminale per completare le tue attività. Prima che Vim 8 fornisse il :terminal caratteristica, la soluzione era passare a un'altra schermata o uscire da Vim per utilizzare la riga di comando. Con il terminale Vim integrato, puoi aprire una finestra del terminale direttamente da Vim. Tuttavia, questa finestra occupa parte della tua area di modifica o è troppo piccola e devi cambiarla continuamente.

Vim Floaterm risolve questi problemi creando il terminale come una finestra mobile che puoi mostrare o nascondere ogni volta che ne hai bisogno. Usa il comando :FloatermNew per creare un nuovo terminale mobile e :FloatermHide per nasconderlo. Puoi anche usare :FloatermToggle per passare da uno stato all'altro. Un terminale mobile si presenta così:

Per rendere più semplice mostrare e nascondere il terminale mobile, puoi mappare il comando su un'altra chiave. Ad esempio, per utilizzare il tasto funzione F12 per controllare Floaterm, aggiungi questa configurazione al tuo .vimrc file:

let g:floaterm_keymap_toggle = '<F12>'

Puoi anche aumentare le dimensioni del terminale mobile fornendo la larghezza e l'altezza come percentuale delle dimensioni dello schermo di Vim con queste due righe di configurazione:

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

Questa configurazione crea un terminale mobile che occupa il 90% delle dimensioni dello schermo di Vim. Floaterm offre molte funzionalità aggiuntive e integrazione con altri plugin e strumenti da riga di comando. Consulta la guida con :h floaterm-contents o il repository ufficiale per ulteriori informazioni.

[ Vuoi testare le tue capacità di amministratore di sistema? Fai una valutazione delle abilità oggi. ] 

Cosa c'è dopo?

In questo articolo, abbiamo esaminato cinque plug-in, più un bonus, che aiutano gli amministratori di sistema a migliorare i propri flussi di lavoro e aumentare la produttività quando utilizzano Vim.

Vim è un superbo editor che fornisce una serie di funzionalità pronte all'uso. L'utilizzo dei plug-in aggiunge nuove funzionalità, semplificando l'adattamento di Vim a flussi di lavoro specifici.

I plug-in in questo articolo si concentrano su funzionalità generali, come l'individuazione di file, la fornitura di informazioni e la gestione dei file controllati dalla versione in Git. Esistono altre classi di plugin per gestire diversi aspetti della configurazione di Vim. Nel prossimo articolo parleremo del completamento del codice e del controllo della sintassi.

Un ringraziamento speciale al mio collega David Ward per avermi presentato i plugin fzf.vim e Vim Floaterm.


Linux
  1. I migliori strumenti Linux per scrittori

  2. 10 guide ai contenitori per gli amministratori di sistema

  3. Demistificare Ansible per gli amministratori di sistema Linux

  4. I migliori comandi Linux su una riga, personalizzare le immagini della macchina virtuale e altri suggerimenti per gli amministratori di sistema

  5. I 15 articoli principali per i quali gli amministratori di sistema sono grati

Installazione di Vundle:il Plugin Manager per Vim

Nozioni di base su Kubernetes per amministratori di sistema

Le cinque migliori app di chat per gli utenti di Ubuntu

30 Esercizi sulle autorizzazioni Linux per amministratori di sistema

I 25 migliori comandi Vim per Linux

I 10 migliori plug-in dell'editor di testo Gedit per programmatori e codifica