Letzte Änderung: 26. Oktober 2022

 Sinvolle Links 

Link : ➞ Vim Webpage

Vim starten und beenden

Befehlsmodus = Vim startet in diesem Modus. Hier kann man Befehle absetzen, um den Text zu bearbeiten, jedoch keinen Text eingeben.
Eingabemodus = Um in den Eingabemodus zu wechseln, betätigt man die Taste i. Nun kann man losschreiben.
Um aus dem Eingabemodus wieder zurück in den Befehlsmodus zu wechseln betätigt man die Taste Esc

:q - Verlassen ohne zu speichern. Funktioniert nur, falls das Dokument nicht verändert wurde.
:q! - Verlassen ohne zu speichern auch bei modifiziertem Dokument.
:wq - Schreiben des Puffers und Verlassen.
:wn - Der Puffer wird geschrieben und das nächste Dokument geladen.
ZZ - Wie :wq.
:x - Wie :wq.

 Wichtige Befehle 


# vim --version
oder
Vim Version IN Vim anzeigen = :intro

Alle Werte Anzeigen = :set all
Alle vom Default geändertetn Werte = :set
Abfragen ob wir im compatible Modus sind = :set compatible ?
Auf meinen lieblingswert setzen = :set nocompatible

Alle unsichtbaren Zeichen anzeigen/verstecken :

:set list to enable
:set nolist to disable

Highlight Search abschalten/anschalten :

:set hlsearch
:set nohlsearch
:noh

Automatischer Zeilenumbruch abschalten/anschalten :

:set nowrap
:set wrap

Wichtige Befehle :

:se nu = Zeilennummern anschalten
:se nonu = Zeilennummern abschalten

u = Undo. Letzte Änderung zurücknehmen
Strg-r = Redo
Strg-g = Statuszeile anzeigen
R = Replace-Modus (Überschreib-Modus) anschalten
gg = An den Anfang der aktuellen Datei springen
Shift + g = An das Ende der aktuellen Datei springen
dd = Löschen der aktuellen Zeile
yy = Aktuelle Zeile in die Zwischenablage bringen
15y [enter] = Kopiert 15 Zeilen in die Zwischenablage
p = Der Inhalt der Zwischenablage wird rechts vom Cursor eingefügt
P = Der Inhalt der Zwischenablage wird links vom Cursor eingefügt
/muster = Suche nach Muster vorwärts im Text
?muster = Suche nach Muster rückwärts im Text
n = Wiederholung der letzten Muster-Suche
N = Wiederholung der letzten Muster-Suche rückwärts
:123 = In Zeile 123 springen
:set list = Zeilenenden und Tabs anzeigen
:set ff=unix = Zeilenenden nach Unixformat umwandeln
:set ff=dos = Zeilenenden nach Dosformat umwandeln
:help = öffnet die Hilfe
:help Befehl = öffnet die Hilfe zu Befehl
:help holy-grail = zeigt alle Befehle an, die mit einem Doppelpunkt beginnen

Installation und Konfiguration


Tipp: Um alle gesetzten Konfigurationen die von der Default Konfiguration abweichen an zu zeigen, startet man den vim und gibt :set ein.

Debian/Ubuntu nach # apt -y install vim; nano /etc/vim/vimrc.local
Centos nach # dnf -y install vim-enhanced; nano /etc/vimrc

runtime! defaults.vim
let g:skip_defaults_vim = 1

" Syntax highlighting anschalten
syntax on

set term=xterm-256color        "
set nocompatible               " Enable Vim mode (instead of vi emulation)
set backspace=indent,eol,start " Enable Backspace in Insert Mode
set mouse=                     " Enable mouse copy paste
set enc=utf-8                  " UTF-8 einstellen
set autoindent                 " Intelligent indentation matching
set autoread                   " Update the file if it's changed externally
set display=truncate           " Show '@@@' when the last screen line overflows
set formatoptions+=j           " Delete comment char when joining lines
set history=100                " Undo up to this many commands
set hlsearch                   " Highlight search results
set incsearch                  " Highlight search matches as you type them
set ruler                      " Show cursor position
set ttyfast                    " Redraw faster for smoother scrolling
set wildmenu                   " Show menu for tab completion in command mode
set number                     " Zeilennummern per Default anschalten
set lazyredraw                 " Speed Vim up
set ignorecase                 " Search case insentive
set showmode                   " always show what mode we're currently editing in
set paste                      " Automatische Einrückung abschalten bei Copy Paste

" F1 Help
nnoremap <Esc>[11~ :help<CR>

" F9 jump to begin of File, F12 jump to end of File
map <F9> :0<CR>
map <F12> :$<CR>

" F5 Syntax Highlight on - off
function! Switch_Syntax()
    if exists("g:syntax_on")
        syntax off
    else
        syntax on
    endif
endfunction
map <F5> :call Switch_Syntax()<CR>

" ctrl+c to toggle highlight search.
let hlstate=0
nnoremap <c-c> :if (hlstate%2 == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=hlstate+1<cr>

Syntax Highlightning


ll /usr/share/vim/vim[0-9][0-9]/syntax

:set syntax=apache
:set syn=c
:set syn=conf
:set syn=html
:set syn=java
:set syn=mysql
:set syn=passwd
:set syn=perl
:set syn=php
:set syn=python
:set syn=samba
:set syn=sh

Alternatively if the extension causes an undesired coloring, switch off coloring with

:syntax off

Welches Highlightning wird benutzt ?

:set ft?
:set syntax ?

Suchen/Ersetzen mit Vim


The :substitute command searches for a text pattern, and replaces it with a text string. There are many options, but these are what you probably want:

:%s/foo/bar/g
Find each occurrence of 'foo' (in all lines), and replace it with 'bar'.

:s/foo/bar/g
Find each occurrence of 'foo' (in the current line only), and replace it with 'bar'.

:%s/foo/bar/gc
Change each 'foo' to 'bar', but ask for confirmation first.

:%s/\<foo\>/bar/gc
Change only whole words exactly matching 'foo' to 'bar'; ask for confirmation.

:%s/foo/bar/gci
Change each 'foo' (case insensitive due to the i flag) to 'bar'; ask for confirmation.

:%s/foo\c/bar/gc is the same because \c makes the search case insensitive.
This may be wanted after using :set noignorecase to make searches case sensitive (the default).

:%s/foo/bar/gcI
Change each 'foo' (case sensitive due to the I flag) to 'bar'; ask for confirmation.

:%s/foo\C/bar/gc is the same because \C makes the search case sensitive.
This may be wanted after using :set ignorecase to make searches case insensitive.