GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die fünf besten Vim-Plugins für Systemadministratoren

Letztes Jahr habe ich den Artikel 5 nützliche Vim-Plugins für Entwickler für Opensource.com geschrieben. Dieser Artikel folgt einer ähnlichen Idee, konzentriert sich jedoch auf Plugins, die Systemadministratoren produktiver machen, unabhängig davon, welche Skripte, Programmiersprachen oder Frameworks sie verwenden. Es gibt eine weitere Klasse von Vim-Plugins, die sich auf die Codevervollständigung und die Syntaxprüfung konzentrieren und die in diesem Artikel absichtlich nicht behandelt werden. Sie werden das Thema für einen weiteren Beitrag sein.

Außerdem enthält dieser Artikel keine Installationsanweisungen für diese Plugins. Sie können den nativen Paketmanager von Vim 8 oder Ihren bevorzugten Plugin-Manager verwenden. Wenn Sie einen schnörkellosen Plugin-Manager für Vim suchen, werfen Sie einen Blick auf Pathogen. Es bietet eine Standardmethode zum Installieren von Plugins durch Klonen ihrer Repositories direkt unter .vim/bundle Verzeichnis mit automatischer Hilfegenerierung.

1. Vim-Fluggesellschaft

Vim Airline ist ein Plugin, das die standardmäßige Vim-Statuszeile durch eine schicke und nützliche Statusleiste ersetzt. Vim Airline ist praktisch und präsentiert hilfreiche Informationen über die Datei, an der Sie gerade arbeiten, einschließlich Dateiname und Speicherstatus, Vim-Modus, Dateityp, Kodierung, Position, Wortzahl und mehr.

Vim Airline ist schnell und leicht. Es zeigt relevante Informationen an, ohne die Leistung von Vim zu beeinträchtigen. Die Verwendung von Vim Airline verbessert Ihre Produktivität, indem Informationen auf einen Blick bereitgestellt werden, die zusätzliche Zeit erfordern würden.

Nach der Installation ermöglicht Vim Airline eine Grundkonfiguration, die keine Änderungen an den Konfigurationsdateien von Vim erfordert. Hier ist die Standard-Statusleiste mit Airline:

Es lässt sich nativ in andere Plugins integrieren, um zusätzliche Informationen anzuzeigen. Wenn Sie beispielsweise Vim Gitgutter (siehe Nr. 4 Vim Gitgutter unten) oder Vim Fugitive (siehe Nr. 5 Vim Fugitive unten) haben, zeigt Airline auch Git-bezogene Informationen an, wie z. B. Zweigstellenname und Diff-Status.

Um spezielle Symbole wie das Git-Zweigsymbol zu verwenden, installieren Sie das Powerline-Schriftartenpaket und aktivieren Sie es mit Vim Airline. Fügen Sie dann diese Zeile zu Ihrer .vimrc hinzu Konfigurationsdatei:

let g:airline_powerline_fonts=1

Zusätzlich zur Statusleiste zeigt Vim Airline oben optional eine Registerkartenzeile an, die den Namen aller geöffneten Registerkarten oder Puffer enthält:

Um diese Funktion zu aktivieren, fügen Sie diese Zeile zu .vimrc hinzu :

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

Schließlich stellt Vim Airline Themen bereit, um der Funktionalität und dem Erscheinungsbild der Statusleiste zusätzliche Flexibilität zu verleihen. Weitere Informationen finden Sie im Repository vim-airline-theme.

Weitere Informationen zu diesem Plugin und zusätzlichen Optionen, die für Ihren Anwendungsfall nützlich sein könnten, finden Sie im offiziellen Repository.

2. NERDTree

NERDTree ist ein Dateisystem-Explorer für Vim, mit dem Sie die Verzeichnisstruktur durchsuchen und Dateien und Verzeichnisse direkt in der Benutzeroberfläche von Vim finden und verwalten können. NERDTree ist ein Ersatz für Vims nativen Datei-Explorer netrw. NERDTree enthält zusätzliche Funktionen und sinnvolle Standardeinstellungen, die den Einstieg erleichtern, ohne Ihrer .vimrc eine Konfiguration hinzuzufügen Datei.

Nach der Installation können Sie NERDTree verwenden, indem Sie den Befehl :NERDTree eingeben . Es öffnet sich als Seitenfenster, in dem das aktuelle Verzeichnis ausgewählt ist. Um es zu schließen, können Sie den Befehl :NERDTreeClose eingeben . Sie können auch :NERDTreeToggle verwenden um zwischen offenen und geschlossenen Fenstern zu wechseln. Sie können diesen Befehl sogar einer anderen Taste zuweisen, um das Öffnen und Schließen von NERDTree zu vereinfachen. Zum Beispiel, um die Funktionstaste F5 zu verwenden Um NERDTree zu steuern, fügen Sie diese Zuordnung zu Ihrer Konfigurationsdatei hinzu:

map <F5> :NERDTreeToggle<CR>

Drücken Sie nun F5 NERDTree öffnen:

Wenn NERDTree geöffnet ist, können Sie mit den Vim-Navigationstasten j durch die Verzeichnisstruktur navigieren und k . Drücken Sie Eingabe in einem Verzeichnis, um es zu erweitern oder zu reduzieren. Standardmäßig zeigt NERDTree die Verzeichnisse in einem Baumformat an. Drücken Sie Eingabe auf eine normale Datei, um sie im Originalfenster zu öffnen. Sie können auch i drücken um die Datei mit einer horizontalen Teilung oder s zu öffnen für eine vertikale Teilung. Drücken Sie ? um die Hilfe mit einer vollständigen Liste von Befehlen zu sehen.

Eine weitere nützliche Funktion ist das Drücken von m um das Menü zu sehen. Sie können dann NERDTree verwenden, um Dateisystemoperationen wie das Erstellen, Umbenennen, Kopieren und Verschieben von Dateien und Verzeichnissen auszuführen:

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 verbessert Ihre Produktivität, indem es Ihnen ermöglicht, Dateien in Vim zu finden und zu verwalten, ohne Zugriff auf die Befehlszeile oder eine andere Dateisystem-Explorer-Anwendung zu benötigen.

[ Vielleicht gefällt Ihnen auch Linux-Grundlagen:Ein Leitfaden für Anfänger zur Textbearbeitung mit vim ]

3. Fzf Vim

NERDTree ist ein großartiges Plugin, das Ihnen hilft, durch die Verzeichnisstruktur zu navigieren und Dateien zu finden, die in Vim funktionieren. Es ist jedoch nicht hilfreich, wenn Sie eine große Verzeichnisstruktur haben oder wenn Sie nach einer Datei suchen, ohne genau zu wissen, wo sie sich befindet. Für solche Fälle ist ein Fuzzy-Finder praktisch.

fzf.vim ist ein Plugin, das das Befehlszeilen-Fuzzy-Suchprogramm fzf umschließt, sodass Sie es direkt in Vim verwenden können. Fzf ist eine schnelle und portable Fuzzy-Finder-Anwendung, die in Go geschrieben wurde. Es ist eine Voraussetzung für das Vim-Plugin, stellen Sie also sicher, dass Sie es zuerst installieren.

Zusätzlich zu Fzf können Sie das Programm bat installieren, um die Syntaxhervorhebung in dem von Fzf angezeigten Vorschaufenster zu aktivieren.

Standardmäßig öffnet fzf.vim das Suchfenster am unteren Bildschirmrand. Um dies zu ändern und das Fenster in die Mitte zu verschieben, wodurch das Vorschaufenster vergrößert wird, fügen Sie diese beiden Zeilen zu Ihrer .vimrc hinzu Konfigurationsdatei:

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

Führen Sie nun eine Fuzzy-Suche mit allen Dateien im aktuellen Verzeichnis durch, indem Sie den Befehl :Files eingeben . fzf.vim öffnet ein Fenster, das alle verfügbaren Dateien auflistet:

Um die verfügbaren Optionen zu filtern, beginnen Sie mit der Eingabe beliebiger Zeichen aus einem beliebigen Teil des Dateinamens, der Erweiterung oder des Verzeichnisses. Fzf filtert automatisch die Ergebnisse für Sie. Wenn Sie sich beispielsweise daran erinnern, dass die gewünschte Datei eine „YAML“-Datei ist, beginnen Sie mit der Eingabe von y dann m und sehen Sie, wie sich die Ergebnisse ändern:

Beachten Sie, dass es nicht erforderlich ist, dass die Zeichen zusammen oder in derselben Reihenfolge stehen, in der Sie sie eingegeben haben. Dies ist das Ziel beim Fuzzy-Finding. Wenn Sie mit dem Filter zufrieden sind, können Sie die verbleibenden Einträge mit den Pfeiltasten auswählen und in der Vorschau anzeigen und Eingabe drücken um das gewünschte zu öffnen. Sie können auch Strg+T verwenden , Strg+X , oder Strg+V , um die Datei in einem neuen Tab, Split oder vertikalen Split zu öffnen.

Die Verwendung von fzf.vim zur Suche nach Dateien ist eine große Hilfe. fzf.vim kann jedoch viel mehr als nur Dateien suchen. Es umschließt das fzf Befehl mit anderen Vim-Funktionen oder anderen externen Befehlen, wodurch Sie nach mehr als Dateien in der aktuellen Verzeichnisstruktur suchen können.

Verwenden Sie beispielsweise den Befehl :Buffers , um eine Liste der aktuell geöffneten Puffer zu durchsuchen. Mit :GFiles, Mit fzf.vim können Sie alle Dateien durchsuchen, die vom aktuellen Git-Repository verwaltet werden. Der Befehl :Lines erlaubt Ihnen, eine Fuzzy-Suche in allen Zeilen von jedem geladenen Puffer auszuführen. Enter drücken bringt Sie zu der bestimmten Zeile im richtigen Puffer:

fzf.vim erlaubt Ihnen sogar, mit dem Befehl :Maps nach Vim-Tastenkombinationen zu suchen . Wenn Sie vergessen haben, welcher Tastenbelegung Sie einen bestimmten Befehl zugeordnet haben, starten Sie fzf.vim, geben Sie ein paar Buchstaben des Befehls ein und es zeigt Ihnen die zugeordnete Tastenbelegung. Enter drücken auf den Eintrag führt den Befehl aus. Um zum Beispiel herauszufinden, welche Taste wir für Vim NERDTree in Vim NERDTree abgebildet haben (siehe Nr. 2 NERDTree oben):

Fzf ist schnell und die Integration des fzf.vim-Plug-ins in Vim macht es zu einem hervorragenden Tool, um beim Auffinden von Dateien und anderen Elementen zu helfen. Dieses Plugin hat viele andere Funktionen. Konsultieren Sie unbedingt die Hilfe, indem Sie den Befehl :h fzf eingeben für eine vollständige Liste.

4. Vim Gitgutter

Das Plugin Vim Gitgutter ist nützlich für diejenigen, die Git als Versionskontrollsystem verwenden. Es zeigt die Ausgabe von Git diff als Symbole in der „Rinne“ – der Vorzeichenspalte, in der Vim zusätzliche Informationen wie Zeilennummern anzeigt. Betrachten Sie beispielsweise diese Ansible-Aufgabendatei als die aktuelle festgeschriebene Version 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

Nachdem einige Änderungen vorgenommen wurden, zeigt Vim Gitgutter die folgenden Symbole im Bundsteg an:

    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

Der - Symbol zeigt an, dass eine Zeile nach Zeile 15 gelöscht wurde. Das Symbol ~ Zeichen zeigt, dass Zeile sieben geändert wurde, und der + -Zeichen zeigt an, dass Zeile zehn hinzugefügt wurde.

Darüber hinaus ermöglicht Ihnen Vim Gitgutter, mit [c und ]c , oder stellen Sie sogar einzelne Hunks zur Übergabe bereit, indem Sie Leader+hs drücken .

Vim Gitgutter integriert sich auch automatisch in Vim-Airline und liefert eine Zusammenfassung der Änderungen in der Statuszeile:

Vim-Airline aktiviert diese Konfiguration standardmäßig und Sie müssen nichts zu Ihrer .vimrc hinzufügen Datei, damit es funktioniert.

Vim Gitgutter bietet sofortiges visuelles Feedback für Änderungen und ist eine großartige Ergänzung Ihrer Toolbox, wenn Sie Git verwenden.

5. Vim-Flüchtling

Vim Fugitive ist ein weiteres großartiges Plugin für diejenigen, die versuchen, Git in den Vim-Workflow zu integrieren. Dieses Plugin ist ein Git-Wrapper, mit dem Sie Git-Befehle direkt von der Vim-Schnittstelle ausführen können. Dieses Plugin hat viele Funktionen, also schauen Sie auf der Github-Seite nach weiteren Informationen.

Hier ist ein einfaches Git-Workflow-Beispiel mit Vim Fugitive. Betrachten Sie die Ansible-Aufgabendatei, die wir als Beispiel in Vim Gitgutter verwendet haben (siehe Nr. 4 Vim Gitgutter oben). Sie können git blame verwenden in Vim durch Eingabe des Befehls :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

Sie können sehen, wer alle Zeilen festgeschrieben hat, mit Ausnahme der Zeilen sieben und zehn, die noch nicht festgeschrieben wurden. Überprüfen Sie nun den Repository-Status, indem Sie :Gstatus eingeben :

  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 öffnet ein geteiltes Fenster mit dem Ergebnis von git status . Sie können eine Datei zum Übertragen bereitstellen, indem Sie - drücken Taste auf der Zeile mit dem Dateinamen. Sie können den Status zurücksetzen, indem Sie - drücken wieder. Die Nachricht wird aktualisiert, um den neuen Status widerzuspiegeln:

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

Beachten Sie, dass sich der Status in Zeile vier von Unstaged geändert hat zu Inszeniert . Jetzt können Sie den Befehl :Gcommit verwenden um die Änderungen zu übernehmen. Vim Fugitive öffnet einen weiteren Split, der es Ihnen ermöglicht, eine Commit-Nachricht einzugeben:

  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 #

Speichern Sie die Datei mit :wq um das Commit abzuschließen. Fugitive zeigt eine Bestätigungsnachricht mit dem neuen Commit-Hash an:

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

Sie können :Gstatus verwenden erneut um das Ergebnis zu sehen und :Gpush um das entfernte Repository mit dem neuen Commit zu aktualisieren:

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

Wenn Ihnen Vim Fugitive gefällt und Sie mehr erfahren möchten, bietet das offizielle Repository Links zu Screencasts, die zusätzliche Funktionen und Arbeitsabläufe zeigen.

Bonus:Vim Floaterm

Vim Floaterm ist ein Plugin, mit dem Sie die Terminalfunktion von Vim 8 als Popup-Fenster verwenden können.

Manchmal müssen Sie Befehle in ein Terminal eingeben, um Ihre Aufgaben zu erledigen. Vor Vim 8 wurde das :terminal bereitgestellt Funktion, wechselte die Lösung zu einem anderen Bildschirm oder beendete Vim, um die Befehlszeile zu verwenden. Mit dem integrierten Vim-Terminal können Sie ein Terminalfenster direkt von Vim aus öffnen. Dieses Fenster nimmt jedoch einen Teil Ihres Bearbeitungsbereichs ein oder ist zu klein, und Sie müssen es ständig ändern.

Vim Floaterm löst diese Probleme, indem das Terminal als schwebendes Fenster erstellt wird, das Sie bei Bedarf ein- oder ausblenden können. Verwenden Sie den Befehl :FloatermNew um ein neues schwebendes Terminal und :FloatermHide zu erstellen um es zu verbergen. Sie können auch :FloatermToggle verwenden zwischen den Zuständen umzuschalten. Ein schwebendes Terminal sieht so aus:

Um das Ein- und Ausblenden des schwebenden Terminals zu vereinfachen, können Sie den Befehl einer anderen Taste zuweisen. Zum Beispiel, um die Funktionstaste F12 zu verwenden Um Floaterm zu steuern, fügen Sie diese Konfiguration zu Ihrer .vimrc hinzu Datei:

let g:floaterm_keymap_toggle = '<F12>'

Sie können die Größe des schwebenden Terminals auch erhöhen, indem Sie die Breite und Höhe als Prozentsatz der Vim-Bildschirmgröße mit diesen beiden Konfigurationszeilen angeben:

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

Diese Konfiguration erstellt ein schwebendes Terminal, das 90 % der Bildschirmgröße von Vim einnimmt. Floaterm bietet viele zusätzliche Funktionen und die Integration mit anderen Plugins und Befehlszeilentools. Konsultieren Sie die Hilfe mit :h floaterm-contents oder das offizielle Repository für weitere Informationen.

[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ] 

Was kommt als nächstes?

In diesem Artikel haben wir fünf Plugins überprüft – plus einen Bonus – die Systemadministratoren helfen, ihre Arbeitsabläufe zu verbessern und ihre Produktivität zu steigern, wenn sie Vim verwenden.

Vim ist ein hervorragender Editor, der eine Reihe von sofort einsatzbereiten Funktionen bietet. Die Verwendung von Plugins fügt neue Funktionen hinzu und macht es einfacher, Vim an bestimmte Arbeitsabläufe anzupassen.

Die Plugins in diesem Artikel konzentrieren sich auf allgemeine Funktionen wie das Auffinden von Dateien, das Bereitstellen von Informationen und den Umgang mit versionierten Dateien in Git. Es gibt andere Klassen von Plugins, um verschiedene Aspekte der Vim-Konfiguration zu verwalten. Im nächsten Artikel sprechen wir über Codevervollständigung und Syntaxprüfung.

Besonderer Dank geht an meinen Kollegen David Ward, der mir die Plugins fzf.vim und Vim Floaterm vorgestellt hat.


Linux
  1. 10 Containerleitfäden für Systemadministratoren

  2. Entmystifizierung von Ansible für Linux-Systemadministratoren

  3. Top einzeilige Linux-Befehle, Anpassen von VM-Images und weitere Tipps für Systemadministratoren

  4. Die 15 wichtigsten Artikel, für die Systemadministratoren dankbar sind

  5. Top 10 Tutorials für Linux-Administratoren

Installieren von Vundle:Der Plugin-Manager für Vim

Kubernetes-Grundlagen für Systemadministratoren

Die fünf besten Chat-Apps für Ubuntu-Benutzer

30 Übungen zu Linux-Berechtigungen für Systemadministratoren

Top 25 Vim-Befehle für Linux

Top 10 der besten Gedit-Texteditor-Plugins für Programmierer und Codierer