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
