15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
08.10.2024

Wie man den Vi/Vim-Editor unter Ubuntu verwendet: Eine vollständige technische Referenz

Vi und Vim (Vi Improved) sind modale, tastaturgesteuerte Texteditoren, die vollständig im Terminal arbeiten und damit unverzichtbar für die Serververwaltung, die Bearbeitung von Remote-Konfigurationen und Scripting-Workflows auf Ubuntu und anderen Linux-Distributionen sind. Vim erweitert Vi um Syntaxhervorhebung, mehrstufiges Rückgängigmachen, geteilte Fenster, Plugin-Unterstützung und eine skriptbare Konfigurationsebene – und das bei vernachlässigbarem Systemressourcenverbrauch.

Wenn Sie eine VPS Hosting-Umgebung oder einen Bare-Metal-Server verwalten, ist die Beherrschung von Vim keine Option – sie ist eine grundlegende Fähigkeit. SSH-Sitzungen haben nicht immer GUI-Zugang, und Vim ist auf nahezu jedem Unix-basierten System, das Sie je verwenden werden, universell verfügbar.

Warum Vim Server-Umgebungen noch immer dominiert

Moderne IDEs sind leistungsstark, aber irrelevant, wenn Sie um 2 Uhr morgens über SSH mit einem headless Ubuntu-Server verbunden sind und eine fehlerhafte Nginx-Konfiguration debuggen. Vims modales Design bedeutet, dass jeder Tastendruck ein Befehl ist – es gibt keine Mausabhängigkeit, keinen Rendering-Overhead und keine durch eine grafische Ebene eingeführte Latenz.

Hauptgründe, warum sich Systemadministratoren auf Vim verlassen:

  • Keine externen Abhängigkeiten: Funktioniert über jede SSH-Verbindung, einschließlich Verbindungen mit geringer Bandbreite oder hoher Latenz
  • Konsistente Verfügbarkeit: Vorinstalliert oder trivial installierbar auf Debian, Ubuntu, CentOS, Alpine und praktisch jeder Linux-Distribution
  • Geschwindigkeit im großen Maßstab: Das Bearbeiten von Konfigurationsdateien, Log-Dateien oder Skripten mit mehreren tausend Zeilen ist in Vim schneller als in jedem GUI-Editor, sobald das Muskelgedächtnis aufgebaut ist
  • Skriptbarkeit: Vims eingebaute Skriptsprache (Vimscript) und Lua-Unterstützung (in Neovim) ermöglichen die vollständige Automatisierung repetitiver Bearbeitungsaufgaben

Vim auf Ubuntu installieren

Ubuntu wird mit einem minimalen `vim-tiny`-Paket ausgeliefert, dem Syntaxhervorhebung, Unterstützung für mehrere Dateien und viele erweiterte Funktionen fehlen. Für den vollen Funktionsumfang installieren Sie das vollständige Paket:

“`bash

sudo apt update

sudo apt install vim -y

“`

Um die installierte Version zu überprüfen und die vollständige Funktionsunterstützung zu bestätigen:

“`bash

vim –version

“`

Suchen Sie nach `+syntax`, `+clipboard`, `+python3` und `+multi_byte` in den Feature-Flags. Ein `-`-Präfix bedeutet, dass diese Funktion aus dem Binary herauscompiliert wurde. Wenn Sie diese Funktionen benötigen und sie fehlen, installieren Sie stattdessen `vim-gtk3` oder `vim-nox`:

“`bash

sudo apt install vim-nox -y # Headless full-feature build

sudo apt install vim-gtk3 -y # GTK3 build with clipboard integration

“`

Kritischer Sonderfall: Auf minimalen Ubuntu-Server-Images – wie sie in Docker-Containern oder cloud-init-bootstrapped Dedicated Servers verwendet werden – kann sogar `vi` fehlen. Installieren Sie in diesem Fall `vim` explizit, bevor Sie versuchen, Konfigurationsdateien zu bearbeiten.

Dateien öffnen, erstellen und wiederherstellen

“`bash

vim filename.txt # Open existing file or create new one

vim /etc/nginx/nginx.conf # Open a system configuration file (use sudo if needed)

sudo vim /etc/ssh/sshd_config # Edit privileged files

vim +42 filename.txt # Open file and jump directly to line 42

vim +/searchterm file.txt # Open file with cursor on first match of searchterm

“`

Swap-Datei-Wiederherstellung: Vim erstellt während der Bearbeitung automatisch eine versteckte Swap-Datei (`.filename.txt.swp`). Wenn Ihre Sitzung abstürzt oder die SSH-Verbindung unterbrochen wird, öffnen Sie dieselbe Datei erneut und Vim fordert Sie auf, nicht gespeicherte Änderungen wiederherzustellen. Wählen Sie immer zuerst `(R)ecover`, speichern Sie den wiederhergestellten Inhalt und löschen Sie dann die Swap-Datei mit `:e` gefolgt von `:!rm ~/.filename.txt.swp` oder durch Ausführen von `vim -r filename.txt`.

Dieser Wiederherstellungsmechanismus ist besonders wertvoll beim Bearbeiten kritischer Konfigurationsdateien auf Produktionsservern – eine unterbrochene Verbindung bedeutet nicht, dass die Arbeit verloren ist.

Vims modale Architektur verstehen

Vims modales Design ist das einzige wichtigste Konzept, das man verinnerlichen muss. Im Gegensatz zu Standard-Editoren, bei denen jeder Tastendruck ein Zeichen einfügt, trennt Vim Navigation, Bearbeitung und Befehlsausführung in verschiedene Modi.

ModusAktivierungHauptzweck
**Normal**`Esc` (Standard beim Öffnen)Navigation, Löschen, Kopieren, Einfügen, Makro-Ausführung
**Insert**`i`, `a`, `o`, `O`, `I`, `A`Text eingeben und einfügen
**Visual**`v` (zeichenweise), `V` (zeilenweise), `Ctrl+v` (blockweise)Textbereiche auswählen
**Visual Block**`Ctrl+v`Spaltenbasierte Auswahl und Bearbeitung
**Command-Line**`:`Dateioperationen, Suchen/Ersetzen, Einstellungen, externe Befehle
**Replace**`R`Vorhandene Zeichen überschreiben
**Ex**`Q`Stapelweise Befehlsausführung (selten interaktiv verwendet)

Der häufigste Anfängerfehler ist das Drücken von Tasten im Normal-Modus in der Erwartung, dass Text erscheint, und dann in Panik zu geraten, wenn `dd` eine Zeile löscht oder `gg` zum Anfang der Datei springt. Bestätigen Sie immer Ihren aktuellen Modus, indem Sie die untere linke Ecke des Bildschirms überprüfen – der Insert-Modus zeigt `– INSERT –`, der Visual-Modus zeigt `– VISUAL –`, und der Normal-Modus zeigt nichts an.

Effiziente Navigation ist das, was einen Vim-Benutzer, der lediglich funktional ist, von einem, der wirklich schnell ist, unterscheidet. Lernen Sie diese in der Reihenfolge ihrer Priorität:

Grundlegende Cursorbewegung

TasteAktion
`h`Ein Zeichen nach links bewegen
`l`Ein Zeichen nach rechts bewegen
`j`Eine Zeile nach unten bewegen
`k`Eine Zeile nach oben bewegen
`w`Zum Anfang des nächsten Wortes springen
`b`Zum Anfang des vorherigen Wortes springen
`e`Zum Ende des aktuellen Wortes springen
`0`Zum Zeilenanfang springen
`^`Zum ersten Nicht-Leerzeichen der Zeile springen
`$`Zum Zeilenende springen
TasteAktion
`gg`Zur ersten Zeile der Datei springen
`G`Zur letzten Zeile der Datei springen
`:42`Zu Zeile 42 springen
`Ctrl+f`Eine ganze Seite vorwärts scrollen
`Ctrl+b`Eine ganze Seite rückwärts scrollen
`Ctrl+d`Eine halbe Seite nach unten scrollen
`Ctrl+u`Eine halbe Seite nach oben scrollen
`%`Zur passenden Klammer, Parenthese oder geschweiften Klammer springen
`*`Zum nächsten Vorkommen des Wortes unter dem Cursor springen
`#`Zum vorherigen Vorkommen des Wortes unter dem Cursor springen

Tipp für Power-User: Stellen Sie jedem Bewegungsbefehl eine Zahl voran, um ihn zu wiederholen. `5j` bewegt sich 5 Zeilen nach unten. `3w` springt 3 Wörter vorwärts. `10dd` löscht 10 Zeilen. Dieser numerische Multiplikator gilt für nahezu jeden Normal-Modus-Befehl und ist der Schlüssel zum schnellen Bearbeiten.

Den Insert-Modus betreten und verlassen

TasteVerhalten
`i`Vor dem Cursor einfügen
`a`Nach dem Cursor anhängen
`I`Am Zeilenanfang einfügen
`A`Am Zeilenende anhängen
`o`Neue Zeile darunter öffnen und Insert-Modus betreten
`O`Neue Zeile darüber öffnen und Insert-Modus betreten
`s`Zeichen unter dem Cursor löschen und Insert-Modus betreten
`S`Gesamte Zeile löschen und Insert-Modus betreten
`Esc` oder `Ctrl+[`Zum Normal-Modus zurückkehren

Kritische Gewohnheit: Entwickeln Sie den Reflex, `Esc` sofort nach dem Abschluss einer Texteingabe zu drücken. Im Insert-Modus zu bleiben, wenn Sie navigieren möchten, ist die Ursache der meisten versehentlichen Bearbeitungen.

Speichern, Beenden und Dateiverwaltung

Diese Befehle werden im Command-Line-Modus ausgeführt (drücken Sie zuerst `:`):

BefehlAktion
`:w`Aktuelle Datei speichern (schreiben)
`:w filename.txt`Unter einem neuen Dateinamen speichern
`:q`Beenden (nur wenn keine ungespeicherten Änderungen vorhanden)
`:q!`Erzwungenes Beenden, alle ungespeicherten Änderungen verwerfen
`:wq` oder `:x`Speichern und beenden
`ZZ`Speichern und beenden (Normal-Modus-Kurzbefehl)
`ZQ`Ohne Speichern beenden (Normal-Modus-Kurzbefehl)
`:w !sudo tee %`Eine Datei speichern, die ohne sudo-Rechte geöffnet wurde

Der `:w !sudo tee %`-Trick ist unverzichtbares Wissen für Serveradministratoren. Wenn Sie eine Systemdatei wie `/etc/fstab` ohne sudo öffnen und Änderungen vornehmen, können Sie nicht mit `:w` speichern. Dieser Befehl leitet den Pufferinhalt durch `sudo tee` weiter, um die Datei mit erhöhten Rechten zu schreiben – ohne Vim schließen und neu öffnen zu müssen.

Bearbeitungsoperationen: Löschen, Kopieren, Einfügen und Rückgängig machen

Vims Bearbeitungsmodell basiert auf Operatoren + Bewegungen. Ein Operator (wie `d` zum Löschen oder `y` zum Yanken/Kopieren) kombiniert mit einer Bewegung (wie `w` für Wort oder `$` für Zeilenende) erzeugt eine präzise Bearbeitungsaktion.

Grundlegende Bearbeitungsbefehle

BefehlAktion
`x`Zeichen unter dem Cursor löschen
`X`Zeichen vor dem Cursor löschen
`dd`Gesamte aktuelle Zeile löschen (ausschneiden)
`D`Vom Cursor bis zum Zeilenende löschen
`dw`Vom Cursor bis zum Ende des Wortes löschen
`d$`Vom Cursor bis zum Zeilenende löschen
`d0`Vom Cursor bis zum Zeilenanfang löschen
`yy` oder `Y`Gesamte aktuelle Zeile yanken (kopieren)
`yw`Vom Cursor bis zum Ende des Wortes yanken
`p`Nach dem Cursor einfügen (oder unterhalb der aktuellen Zeile bei zeilenweisen Yanks)
`P`Vor dem Cursor einfügen (oder oberhalb der aktuellen Zeile)
`u`Letzte Änderung rückgängig machen
`Ctrl+r`Letzte rückgängig gemachte Änderung wiederherstellen
`.`Letzte Änderung wiederholen (einer der mächtigsten Befehle in Vim)
`~`Groß-/Kleinschreibung des Zeichens unter dem Cursor umschalten
`>>`Aktuelle Zeile eine Ebene einrücken
`<<`Einrückung der aktuellen Zeile um eine Ebene verringern

Der `.`-Befehl (Punkt) ist wohl die am meisten unterschätzte Vim-Funktion unter Anfängern. Er wiederholt Ihre letzte zusammengesetzte Aktion – wenn Sie ein Wort mit `dw` gelöscht haben, löscht das Drücken von `.` das nächste Wort. Wenn Sie ein Wort mit `cw` geändert und einen Ersatz eingegeben haben, wendet `.` denselben Ersatz auf das nächste Vorkommen an. Dies eliminiert repetitive manuelle Bearbeitungen in großen Dateien.

Visual-Modus: Präzise Textauswahl

Der Visual-Modus bietet drei Auswahlgranularitäten:

  • `v` — Zeichenweise visuelle Auswahl
  • `V` — Zeilenweise visuelle Auswahl (wählt ganze Zeilen aus)
  • `Ctrl+v` — Blockweise visuelle Auswahl (Spaltenbearbeitung)

Nach einer Auswahl Operatoren anwenden:

TasteAktion auf Auswahl
`d`Ausgewählten Text löschen
`y`Ausgewählten Text yanken (kopieren)
`c`Ändern (löschen und Insert-Modus betreten)
`>`Auswahl einrücken
`<`Einrückung der Auswahl verringern
`~`Groß-/Kleinschreibung der Auswahl umschalten
`:`Command-Line-Modus mit vorausgefülltem Bereich betreten

Praxisanwendungsfall für den Block-Visual-Modus (`Ctrl+v`): Sie haben eine Konfigurationsdatei, in der Sie 15 aufeinanderfolgende Zeilen auskommentieren müssen, indem Sie `#` voranstellen. Wählen Sie die erste Spalte dieser Zeilen mit `Ctrl+v` aus, navigieren Sie mit `j` nach unten, drücken Sie `I` (Großbuchstabe i), tippen Sie `#`, dann drücken Sie `Esc`. Vim wendet die Einfügung gleichzeitig auf jede ausgewählte Zeile an. Dies ist eine Aufgabe, die in den meisten anderen Editoren einen regulären Ausdruck oder manuelle Wiederholung erfordern würde.

Suchen und Ersetzen

Suchen

“`

/pattern Search forward for pattern (regex supported)

?pattern Search backward for pattern

n Jump to next match

N Jump to previous match

  • Search forward for word under cursor

Search backward for word under cursor

:noh Clear search highlighting

“`

Syntax für Suchen und Ersetzen

“`

:%s/old/new/g Replace all occurrences in entire file

:%s/old/new/gc Replace all with confirmation prompt for each

:%s/old/new/gi Case-insensitive replace across entire file

:10,20s/old/new/g Replace only within lines 10 through 20

:'<,'>s/old/new/g Replace within visually selected range

:%s/bwordb/new/g Replace whole word only (word boundary anchors)

“`

Regex-Unterstützung: Vim verwendet seinen eigenen Regex-Dialekt. Die `b`-Wortgrenze, `d` für Ziffern, `s` für Leerzeichen und `+` (ein oder mehr) sind verfügbar. Für erweiterte Regex-Syntax mit `v` voranstellen: `:%s/v(foo|bar)/baz/g` passt entweder auf „foo” oder „bar” und ersetzt durch „baz”.

Arbeiten mit mehreren Dateien, Puffern und geteilten Fenstern

Hier wird Vims Stärke bei komplexen Bearbeitungssitzungen am deutlichsten.

Puffer

Ein Puffer ist eine In-Memory-Darstellung einer Datei. Vim kann viele Puffer gleichzeitig geöffnet halten.

“`

:e filename Open a file into a new buffer

:ls or :buffers List all open buffers

:b2 Switch to buffer number 2

:bnext or :bn Switch to next buffer

:bprev or :bp Switch to previous buffer

:bd Delete (close) current buffer

“`

Geteilte Fenster

“`

:split filename Horizontal split, open file in upper pane

:vsplit filename Vertical split, open file in right pane

Ctrl+w h/j/k/l Navigate between split panes

Ctrl+w = Equalize split pane sizes

Ctrl+w q Close current pane

“`

Tabs

“`

:tabnew filename Open file in a new tab

:tabnext or gt Switch to next tab

:tabprev or gT Switch to previous tab

:tabclose Close current tab

“`

Praktisches Szenario: Beim Bearbeiten der Konfiguration eines Webservers auf einem VPS mit cPanel müssen Sie möglicherweise die Haupt-`nginx.conf` konsultieren, während Sie eine Virtual-Host-Datei bearbeiten. Öffnen Sie beide in einem vertikalen Split mit `:vsplit /etc/nginx/nginx.conf` und navigieren Sie zwischen den Bereichen mit `Ctrl+w l` und `Ctrl+w h` – ohne eine Datei schließen zu müssen, um die andere zu konsultieren.

Vim mit .vimrc konfigurieren

Die `.vimrc`-Datei in Ihrem Home-Verzeichnis ist Vims persistente Konfiguration. Sie wird bei jedem Start von Vim als Vimscript ausgeführt.

“`bash

vim ~/.vimrc

“`

Empfohlene Konfiguration für Produktionsserver

“`vim

" Display settings

set number " Show absolute line numbers

set relativenumber " Show relative line numbers (great for jump commands)

set cursorline " Highlight the current line

set scrolloff=8 " Keep 8 lines visible above/below cursor when scrolling

" Indentation

set autoindent " Copy indent from current line on new line

set smartindent " Context-aware indentation for code

set expandtab " Convert tabs to spaces

set tabstop=4 " Tab width = 4 spaces

set shiftwidth=4 " Indentation width for >> and <<

" Search behavior

set hlsearch " Highlight all search matches

set incsearch " Show matches as you type

set ignorecase " Case-insensitive search

set smartcase " Override ignorecase if search contains uppercase

" Usability

set mouse=a " Enable mouse in all modes

syntax on " Enable syntax highlighting

set encoding=utf-8 " Default encoding

set clipboard=unnamedplus " Use system clipboard for yank/paste

set undofile " Persist undo history across sessions

set undodir=~/.vim/undo " Directory for persistent undo files

" Visual

set showmatch " Briefly jump to matching bracket

set laststatus=2 " Always show status line

set wildmenu " Enhanced command-line completion

“`

Wichtig: Die `set undofile`-Direktive erstellt einen persistenten Undo-Verlauf, der auf der Festplatte gespeichert wird. Das bedeutet, Sie können eine Datei schließen, sie Tage später wieder öffnen und trotzdem Änderungen aus der vorherigen Sitzung rückgängig machen. Erstellen Sie das Undo-Verzeichnis, bevor Sie dies aktivieren:

“`bash

mkdir -p ~/.vim/undo

“`

Dies ist besonders wertvoll bei inkrementellen Änderungen an Konfigurationsdateien auf Produktionssystemen – zum Beispiel beim Anpassen von PHP-FPM-Einstellungen oder beim Justieren von SSL-Parametern auf einem Server, der SSL-Zertifikate für mehrere Domains betreibt.

Makros: Repetitive Bearbeitungen automatisieren

Makros sind eine der mächtigsten und am wenigsten genutzten Funktionen von Vim. Ein Makro zeichnet eine Folge von Tastendrücken auf und spielt sie wieder ab.

“`

qa Start recording macro into register 'a'

[actions] Perform any sequence of Normal/Insert mode commands

q Stop recording

@a Replay macro stored in register 'a'

@@ Replay the last executed macro

10@a Replay macro 'a' ten times

“`

Praxisbeispiel: Sie haben eine CSV-Datei mit 200 Zeilen und müssen das zweite Feld jeder Zeile in doppelte Anführungszeichen einschließen. Zeichnen Sie das Makro in der ersten Zeile auf, spielen Sie es 199 Mal mit `199@a` ab, und die Transformation ist in unter einer Sekunde abgeschlossen. Kein Scripting erforderlich.

Markierungen und Sprünge

Markierungen ermöglichen es Ihnen, Positionen innerhalb einer Datei mit einem Lesezeichen zu versehen und sofort zu ihnen zurückzuspringen.

“`

ma Set mark 'a' at current cursor position

'a Jump to the line of mark 'a'

`a Jump to the exact position of mark 'a'

'' Jump back to position before last jump

Ctrl+o Jump to previous position in jump list

Ctrl+i Jump to next position in jump list

:marks List all current marks

“`

Vim vs. Nano vs. Emacs: Den richtigen Terminal-Editor wählen

FunktionVimNanoEmacs
**Lernkurve**Steil (modales System)MinimalSehr steil
**Startzeit**Nahezu sofortNahezu sofortLangsamer
**Speicherverbrauch**Sehr geringSehr geringMittel bis hoch
**Syntaxhervorhebung**VollständigGrundlegendVollständig
**Plugin-Ökosystem**UmfangreichMinimalUmfangreich
**Makro-Unterstützung**Nativ, leistungsstarkKeineNativ
**Geteilte Fenster**JaNeinJa
**Remote-Bearbeitung**Nativ über SSHNativ über SSHTRAMP-Protokoll
**Konfigurationskomplexität**Mittel (.vimrc)MinimalHoch (Elisp)
**Am besten geeignet für**Power-User, SysadminsSchnelle Bearbeitungen, AnfängerEntwickler, Lisp-Nutzer

Für Serveradministrationsaufgaben – Bearbeiten von Konfigurationsdateien, Schreiben von Shell-Skripten, Überprüfen von Logs – bietet Vim die beste Balance aus Leistung, Verfügbarkeit und Geschwindigkeit. Nano ist für einmalige Bearbeitungen akzeptabel, wenn Sie sich den kognitiven Aufwand nicht leisten können. Emacs ist eine legitime Wahl für Entwickler, die im Terminal leben, aber sein Ressourcenverbrauch und seine Startzeit machen es in eingeschränkten Serverumgebungen weniger praktisch.

Häufige Fallstricke und wie man sie vermeidet

1. Produktionsdateien ohne Backup bearbeiten

Erstellen Sie immer ein Backup, bevor Sie kritische Systemdateien bearbeiten:

“`bash

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

sudo vim /etc/nginx/nginx.conf

“`

2. Vergessen, sudo zu verwenden

Wenn Sie eine privilegierte Datei ohne sudo öffnen und Änderungen vornehmen, verwenden Sie `:w !sudo tee %`, um zu speichern, ohne Ihre Bearbeitungen zu verlieren.

3. Register verwechseln

Wenn Sie Text mit `dd` löschen, landet er im Standard-Register `"`. Wenn Sie dann etwas mit `yy` yanken, wird der gelöschte Text überschrieben. Um einen Yank vor dem Löschen zu bewahren, verwenden Sie benannte Register: `"ayy` yankt in Register `a`, und `"ap` fügt daraus ein.

4. Swap-Dateien auf gemeinsam genutzten Systemen hinterlassen

Vim-Swap-Dateien in `/tmp` oder dem Arbeitsverzeichnis können andere Benutzer oder automatisierte Prozesse verwirren. Konfigurieren Sie ein dediziertes Swap-Verzeichnis in `.vimrc`:

“`vim

set directory=~/.vim/swap//

“`

Der doppelte abschließende Schrägstrich veranlasst Vim, den vollständigen Dateipfad im Swap-Dateinamen zu kodieren, um Kollisionen zu verhindern.

5. Zeilenende-Probleme bei plattformübergreifenden Dateien

Wenn Sie eine Datei bearbeiten, die unter Windows erstellt wurde, kann sie CRLF-(`rn`)-Zeilenenden haben. Vim zeigt `^M` am Ende jeder Zeile an. Beheben Sie dies mit:

“`bash

:%s/r//g

“`

Praktische Checkliste der wichtigsten Erkenntnisse

Verwenden Sie dies als schnelle Entscheidungsmatrix vor und während Vim-Sitzungen:

  • Vor dem Bearbeiten einer Produktionsdatei: Erstellen Sie ein zeitgestempeltes Backup mit `cp file file.$(date +%Y%m%d%H%M%S).bak`
  • Moduswahrnehmung: Wenn Tastendrücke keinen Text einfügen, drücken Sie `Esc` und bestätigen Sie Ihren Modus
  • Schnelle Speichergewohnheit: Drücken Sie `Esc` dann `:w` nach jeder wesentlichen Änderung – warten Sie nicht bis zum Ende
  • Verwenden Sie `:set number` vorübergehend, wenn Sie zu einer bestimmten Zeile navigieren müssen und diese nicht in `.vimrc` haben
  • Für globales Suchen/Ersetzen: Testen Sie immer mit `:%s/old/new/gc` (mit Bestätigung), bevor Sie `:%s/old/new/g` blindlings ausführen
  • Swap-Datei-Aufforderung beim Öffnen: Wählen Sie immer `(R)ecover`, speichern Sie den Inhalt und löschen Sie dann die Swap-Datei
  • Für Spaltenbearbeitungen: Verwenden Sie den `Ctrl+v`-Block-Visual-Modus anstelle manueller Wiederholung
  • Persistentes Undo: Konfigurieren Sie `set undofile` in `.vimrc` auf jedem Server, den Sie regelmäßig verwalten
  • Zwischenablage-Integration: Wenn `p` unerwarteten Inhalt einfügt, überprüfen Sie, ob `set clipboard=unnamedplus` gesetzt ist und ob `xclip` oder `xsel` installiert ist
  • Im Zweifelsfall: `:help keyword` öffnet die eingebaute Dokumentation für jeden Befehl oder jede Option

Ob Sie Konfigurationsdateien in Shared Web Hosting-Umgebungen verwalten oder komplexe Infrastruktur auf Dedicated Servers betreiben – Vims Effizienz wächst mit der Zeit: Jeder Befehl, den Sie verinnerlichen, beseitigt dauerhaft Reibung in Ihrem Workflow.

FAQ

F: Was ist der Unterschied zwischen Vi und Vim auf Ubuntu?

`vi` auf modernen Ubuntu-Systemen ist typischerweise ein Symlink zu `vim` in einem reduzierten Kompatibilitätsmodus oder zu `vim-tiny`. Das echte Vi ist der ursprüngliche Editor von 1976 ohne Syntaxhervorhebung, ohne mehrstufiges Rückgängigmachen und ohne Plugin-Unterstützung. Vim fügt über 100 Funktionen zu Vi hinzu und bleibt dabei vollständig abwärtskompatibel mit Vi-Tastenbelegungen.

F: Wie beende ich Vim, wenn ich völlig feststecke?

Drücken Sie `Esc` mehrmals, um sicherzustellen, dass Sie sich im Normal-Modus befinden, tippen Sie dann `:q!` und drücken Sie Enter. Dies erzwingt das Beenden ohne Speichern. Wenn selbst das fehlschlägt (selten, aber möglich in rekursiven Befehlszuständen), drücken Sie zuerst `Ctrl+c`, dann `:q!`.

F: Kann Vim Dateien über SSH bearbeiten, ohne sie lokal zu kopieren?

Ja. Verwenden Sie `vim scp://user@hostname//path/to/file`, um Remote-Dateien direkt über SCP zu bearbeiten. Vim übernimmt die Übertragung transparent. Alternativ verwenden Sie `rsync`, um die Datei abzurufen, lokal zu bearbeiten und zurückzusenden – dies ist bei großen Dateien schneller.

F: Wie aktiviere ich die Syntaxhervorhebung für einen bestimmten Dateityp, den Vim nicht erkennt?

Führen Sie `:set filetype=nginx` aus (oder `python`, `yaml`, `bash` usw.), um für die aktuelle Sitzung manuell einen Dateityp zuzuweisen. Um es dauerhaft für eine bestimmte Dateiendung zu machen, fügen Sie `autocmd BufRead,BufNewFile *.conf set filetype=nginx` zu Ihrer `.vimrc` hinzu.

F: Ist Neovim eine bessere Wahl als Vim für den Servereinsatz?

Für reine Serveradministrationsaufgaben ist Standard-Vim ausreichend und universeller verfügbar. Neovim bietet Lua-basierte Konfiguration, bessere Unterstützung für asynchrone Plugins und einen eingebauten LSP-Client – Vorteile, die hauptsächlich für Entwicklungs-Workflows relevant sind. Auf Produktionsservern, auf denen Sie nur das Notwendige installieren, bleibt Vim die pragmatische Wahl.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen