Benutzer:Andreas Plank/Vim
Aus Offene Naturführer
Editor Vi
Makrofunktionen siehe http://www.thegeekstuff.com/2009/01/vi-and-vim-macro-tutorial-how-to-record-and-play/
:help save | Hilfe-Suche zum Speichern (beenden mit :q) |
:x | save end exit – speichern + beenden |
:w | ![]() |
:q | quit – beenden (speichern Nachfrage) |
:q! | quit – ohne wenn und aber beenden |
gf | ![]() |
Ctrl w gf | ![]() ![]() |
Ctrl f | ![]() ![]() |
Ctrl w w | switch between windows – zwischen den Fenstern wechseln |
:tabn :tabp :tabfirst :tablast | ![]() |
:e /path/file | enter file – Datei öffnen |
Schreiben | |
---|---|
i oder Einfg | insert (einfügen), Modus verlassen: ESC |
Einfg Einfg | überschreiben/ersetzten, Modus verlassen: ESC |
I | insert (einfügen) an Pos1-Stelle, Modus verlassen: ESC |
r | momentanen Buchstaben ersetzen, Modus verlassen: ESC |
R | Buchstaben ersetzen, Modus verlassen: ESC |
u | |
Ctrl r | |
Bewegen | |
hjkl | ←↓↑→ Bewegung |
w | wortweise bewegen |
b | Move to the beginning of the word |
B | Move to the beginning of blank delimted word |
e | Move to the end of the word |
E | Move to the end of Blank delimited word |
( ) | satzweise ← → |
{ } | absatzweiwse ← → |
0 oder $ | gehe an den Anfang oder das Ende der Zeile |
:0 oder :n oder :$ | gehe an den Anfang, die n-te Zeile, das Ende des Dokuments |
Einfügen/Kopieren | |
:y | Yank the current line into the buffer |
yy | Yank the current line into the buffer |
yy bewegen p | Kopieren und einfügen an anderer Stelle |
5yy oder y5y | 5 Zeilen in den Puffer kopieren (mit p irgendwo einfügen [p von put]) |
ye | Yank to end of word |
:r !date | return date (external command) – Datum einfügen (von externer Kommandozeile!) |
Verschieben – put | |
p | Put after the position or after the line |
P | Put before the poition or before the line |
Löschen | |
dd | Zeile löschen (delete) |
:.,$d | aktuelle Zeile bis Dokumentende löschen (delete) |
Suchen/Ersetzung ![]() | |
?Suchwort | |
# | macht Wort bei Cursor-Textmarke das Wort zum Suchwort |
:s/reg.Ausdruck/Ersetztung/g | g → global (=mehrfach) in aktueller Zeile (GROß/klein!) Benutzt sed Syntax: summarised: + is + ? is ? ( is ( { is { → all no expressions! (..) → \(\) reference ? → \? 0 or 1 .+ → .\+ 1 or many .* → .* 0 or many [..] → [..] character definition range {..} → \{..\} |
:s/reg.Ausdruck/Ersetztung/gi | global (=mehrfach) in aktueller Zeile (GROß/klein egal) |
:1,$s/reg.Ausdruck/Ersetztung/gc :%s/reg.Ausdruck/Ersetztung/g |
global (=mehrfach) von Zeile 1 bis Dokument-Ende ($) mit Nachfrage (GROß/klein!) |
:s/\( *\)\(.*\)/\1/g | Zeile in HTML kommentieren global (=mehrfach) in aktueller Zeile |
:%s/\(<\/*table[^>]*>\)/\r\1/g | alle table tags mit Zeilenumbruch (Linux) ersetzten |
Verschiedenes | |
timestamp | :r! date "+\%Y-\%m-\%d \%H:\%M:\%S" |
macros | Esc q m → Makro „m“ aufzeichnen → Schritte, z.B. Strg + a (=n + 1), yy = yank (Zeile kopieren) etc., Bewegungen mit w b 0 oder $ … Esc q → quit, stop aufzeichnen Aufruf mit 10@m = 10 × Makro „m“ aufrufen |
:set nu :set nonu |
Zeilennummern an/aus |
:sp :sp ../meineDateiEineEbeneHöher.txt |
Fenster horizontal teilen ![]() Strg +w dann w → zwischen Fenstern springen |
:vsp :vsp ../meineDateiEineEbeneHöher.txt |
Fenster vertikal teilen ![]() Strg +w dann w → zwischen Fenstern springen |
Sortieren |
:14,27 sort u
:14,27 sort! u
|
Dateien vergleichen Vimdiff
vimdiff datei1.txt datei2.txt
| |
---|---|
Strg+w Strg+w | Fenster wechseln |
:12,20diffget | get diff for lines 12 to 20 |
:23,40dp | put diff lines 23 to 40 to the other buffer |
[c | Differenz davor |
]c | Differenz danach |
:diffupdate | diff update |
:syntax off | syntax off |
zo | open folded text |
zc | close folded text |