Code-Snipptes für Vim

von | 15 Juni,2025 | Scripts & Snippets

Spezielle und weniger bekannte Code-Snippets für Vim

Fügt die Zahlen von 1 bis 10 in aufeinanderfolgenden Zeilen ein.

:put =range(1, 10)

HTML-Tags automatisch um Text herum einfügen

Markiere einen Textbereich, drücke <leader>t und gib einen HTML-Tag ein, um den markierten Bereich in diesen Tag einzuschließen.

vnoremap <leader>t <Esc>`<i<<C-r>=input("Tag: ")<CR>><Esc>`>a</<C-r>=input("Tag: ")<CR>><Esc>

Schnelle Dateinavigation mit Register

Zeigt alle geöffneten Buffers an und erlaubt schnelles Umschalten zwischen ihnen.

nnoremap <leader>b :ls<CR>:b<Space>

Zeilen in alphabetischer Reihenfolge sortieren

Markiere die gewünschten Zeilen im visuellen Modus und führe den Befehl aus, um sie alphabetisch zu sortieren.

:'<,'>sort

Zeilen innerhalb eines Blocks kommentieren

Markiere einen Block und drücke <leader>c, um alle Zeilen zu kommentieren (hier mit //).

xnoremap <leader>c :s/^/\/\/ /<CR>

Wörter umkehren

Dieser Befehl kehrt jedes Wort in der Datei um.

:%s/\w\+/\=join(reverse(split(submatch(0), '.\zs')), '')/g

Umschalten zwischen relativen und absoluten Zeilennummern

Drücke <leader>n, um zwischen absoluten und relativen Zeilennummern zu wechseln.

nnoremap <leader>n :set invnumber invrelativenumber<CR>

Nur Zahlen in einem Text extrahieren

Löscht alle Zeilen, die keine Zahlen enthalten.

:g/[^0-9]/d

Anpassen der .vimrc mit zusätzlichen Funktionen

" Grundlegende Einstellungen
set nocompatible         " Deaktiviert Kompatibilität mit Vi
set number               " Zeilennummern anzeigen
set relativenumber       " Relative Zeilennummern anzeigen
set showcmd              " Zeigt eingegebene Befehle unten an
set cursorline           " Hervorheben der aktuellen Zeile
set wildmenu             " Bessere Autovervollständigung im Befehlsmodus
set hlsearch             " Suchergebnisse hervorheben
set incsearch            " Inkrementelle Suche aktivieren
set ignorecase           " Suche ohne Berücksichtigung der Groß-/Kleinschreibung
set smartcase            " Berücksichtigt Groß-/Kleinschreibung, wenn Großbuchstaben verwendet werden
set clipboard=unnamedplus " Zwischenablage mit System teilen
 
" Tab- und Einrückungseinstellungen
set expandtab            " Tabs in Spaces umwandeln
set tabstop=4            " Tabweite auf 4 Spaces setzen
set shiftwidth=4         " Einrückung auf 4 Spaces setzen
set autoindent           " Automatische Einrückung aktivieren
 
" Statuszeile immer anzeigen
set laststatus=2
 
" Dateitypabhängige Einstellungen
autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4
autocmd FileType make setlocal noexpandtab
 
" Entfernen von Leerzeichen am Zeilenende beim Speichern
autocmd BufWritePre * %s/\s\+$//e
 
" Automatische Speicherung bei Fokusverlust
autocmd FocusLost * :wa
 
" Cursorposition beim erneuten Öffnen einer Datei wiederherstellen
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
 
" Schnelles Umschalten zwischen letzten zwei Buffern
nnoremap <leader><leader> <C-^>
 
" Hintergrundfarbe je nach Tageszeit wechseln
autocmd VimEnter * if strftime("%H") < 18 | colorscheme morning | else | colorscheme evening | endif
 
" Bessere Navigation für lange Zeilen
nnoremap j gj
nnoremap k gk
 
" Highlight der aktuellen Zeile im Einfügemodus deaktivieren
autocmd InsertEnter * set nocursorline
autocmd InsertLeave * set cursorline
 
" Zahlenreihen einfügen
command! -nargs=1 NumberSeq put =range(1, <args>)

.vimrc speichern

Füge den obigen Inhalt ein und speichere die Datei mit :wq

Lade die Konfiguration neu, indem du :source ~/.vimrc in Vim ausführst, oder starte Vim neu.

vim ~/.vimrc