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