Vim
Vim ist der universelle Texteditor, der auf jedem UNIX-System installiert ist. Während Neovim innoviert, konzentriert sich Vim auf Abwärtskompatibilität und Stabilität.
Wann verwenden
- Universelle Server- & Systembearbeitung: Bearbeiten von Systemkonfigurationen, Skripten und Code auf jedem Unix/Linux-Server ohne Installation externer Software.
- Modale Textmanipulation: Texttransformationen mit Operator-Bewegungs-Grammatik (
dap,ci",gUiw). - Kopflose Makro-Automatisierung: Aufzeichnen und Abspielen sich wiederholender Bearbeitungsvorgänge über Hunderte von Zeilen (
qa,@a). - Git-Commit & Merge-Bearbeitung: Schnelle interaktive Bearbeitung für Commit-Nachrichten, interaktive Rebases und Konfliktlösung bei Diffs.
Schnellstart
1. Minimale ~/.vimrc
syntax on
set number
set relativenumber
set tabstop=2
set shiftwidth=2
set expandtab
set hlsearch
set incsearch
set clipboard=unnamed
let mapleader = " "
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
2. Grundlegende Bearbeitungsbefehle
i/a: Einfügemodus (vor / nach dem Cursor)ci": Ändere innerhalb von Anführungszeichenda{: Lösche um geschweifte Klammern herum:%s/foo/bar/g: Ersetze alle Vorkommen von foo durch bar in der Datei.: Wiederhole die letzte Änderung
Kernkonzepte
Moderne Produktions-Vimrc (~/.vimrc)
Konfigurieren sinnvoller Standardeinstellungen, des Plugin-Managers und der Code-Navigation:
" ~/.vimrc
set nocompatible
filetype plugin indent on
syntax on
" Allgemeine Einstellungen
set number
set relativenumber
set expandtab
set shiftwidth = 2
set tabstop = 2
set autoindent
set smartindent
set hlsearch
set incsearch
set ignorecase
set smartcase
set hidden
set backspace=indent,eol,start
set updatetime=300
set clipboard=unnamed
" Leader-Tastenbelegung
let mapleader = " "
" Schnelle Split-Navigation
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
" Suchergebnis-Hervorhebung löschen
nnoremap <leader>h :nohlsearch<CR>
Wichtige Textobjekte & Grammatik
Kombinieren von Operatoren (d, c, y, v) mit Textobjekten und Bewegungen:
ci" - Ändere innerhalb von doppelten Anführungszeichen ("foo" -> "")
di( - Lösche innerhalb von Klammern
yap - Kopiere (yank) um einen Absatz herum
gUiw - Wandle inneres Wort in GROSSBUCHSTABEN um
dt, - Lösche vom Cursor bis zum Komma
. - Wiederhole die letzte Änderung sofort
Makro-Aufzeichnung & -Ausführung
Automatisieren sich wiederholender Transformationen tabellarischer Daten:
1. Drücke `qa`, um die Aufnahme in das Register 'a' zu starten
2. Führe die Textbearbeitungsschritte aus (z. B. `0iconst <Esc>A = true;<Esc>j`)
3. Drücke `q`, um die Aufnahme zu beenden
4. Spiele das Makro auf der aktuellen Zeile ab: `@a`
5. Spiele das Makro 50 Mal über Zeilen hinweg ab: `50@a`
6. Führe das Makro auf einer visuellen Auswahl aus: `:'<,'>normal @a`
Häufige Muster
Makro-Aufzeichnung und Massenausführung
Problem: Führe sich wiederholende mehrschrittige Bearbeitungen über mehrere Zeilen durch.
Lösung: Zeichne Tastenanschläge im Register q auf.
- Setze den Cursor an die Zielstartposition.
- Drücke
qq, um die Aufnahme im Registerqzu starten. - Führe die Bearbeitungssequenz aus (z. B.
I" <Esc> A",<Esc> j ^). - Drücke
q, um die Aufnahme zu beenden. - Spiele mit
@qab, oder führe über 50 Zeilen aus:50@q.
Plugin-Verwaltung mit vim-plug
Problem: Installiere und organisiere Vim-Plugins ohne manuelle Pfadmanipulation.
Lösung: Verwende vim-plug.
call plug#begin('~/.vim/plugged')
Plug 'tpope/vim-sensible'
Plug 'tpope/vim-fugitive'
Plug 'preservim/nerdtree'
call plug#end()
Führe :PlugInstall in Vim aus, um zu installieren.
Best Practices (2026)
- Tu meistere die modale Navigation (
h,j,k,l,w,b,e) und vermeide den Griff zu den Pfeiltasten. - Tu nutze Textobjekte (
ciw,da(,yi{), um strukturierte Codeblöcke mit minimalen Tastenanschlägen zu bearbeiten. - Tu verwende den Punktbefehl (
.), um kürzliche Texttransformationen auf ähnliche Zeilen zu wiederholen. - Tu aktiviere
set hidden, damit Puffer im Hintergrund geöffnet bleiben können, ohne sofortiges Speichern zu erzwingen. - Tu nicht installiere Hunderte schwerer Legacy-VimScript-Plugins; wechsle zu Neovim Lua, wenn eine umfangreiche IDE-Umgebung erforderlich ist.
- Tu nicht lasse Swap-Dateien (
.swp) zurückbleiben; konfiguriereset noswapfileoder lege ein dediziertes Swap-Verzeichnis fest. - Tu nicht verwende synchrone externe Aufrufe in
~/.vimrc, die auf entfernten Rechnern eine merkliche Startverzögerung verursachen.
Fehlerbehebung
| Fehler / Symptom | Ursache | Lösung |
|---|---|---|
System-Zwischenablage-Kopie schlägt fehl ("+y tut nichts) | Vim ohne +clipboard-Unterstützung kompiliert | Installiere vim-gtk3 (Ubuntu) oder macvim/neovim mit aktivierter Zwischenablage-Unterstützung. |
Pfeiltasten fügen A, B, C, D-Zeichen ein | Ausführung im strikten Vi-kompatiblen Modus | Füge set nocompatible am Anfang der ~/.vimrc hinzu. |
| Hervorhebung von nachgestellten Leerzeichen bleibt nach Suche bestehen | Hervorhebung der Suche blieb aktiv | Drücke :nohlsearch oder binde <leader>h :nohlsearch<CR>. |
Referenzen
Übersetzt ins Deutsche.