1 " vim:set syntax=todo:
  2 
  3 Plugins {{{
  4     Liste von zusäztlichen Plugins.
  5 
  6      1. NERD_tree.vim
  7         Browser Plugin. Mit ;TT öffnen/schließen,
  8      2. netrwPlugin.vim
  9      3. HTML.vim
 10         Bietet Kommandos zum schnellen HTML schreiben.
 11      4. vimwiki.vim
 12         Hat eigene Wiki Syntax, praktisch um Notizen auf den Laufenden zu
 13         halten.
 14      5. 02tlib.vim
 15         Wird von ctags benötigt.
 16      6. ctags.vim
 17      7. EasyMotion.vim
 18         Um flott durch den Text zu kommen. Mit ;<web>.
 19      8. project.vim
 20         In einer Project Datei alle Dateien eines Ordners auflisten, und
 21         einfach aufrufbar machen. So nutze ich das wenigstens.
 22      9. renamer.vim
 23         Praktisch um viele Dateien innerhalb eines Verzeichnisses umzubenennen.
 24     10. showmarks.vim
 25         Zeigt die Sprungmarken an.
 26     11. smartusline.vim
 27         Färbt die Statusleiste ein.
 28     12. stakeholders.vim
 29         Wird von tskeleton.vim benötigt.
 30     13. sublist.vim
 31         Das Plugin taglist.vim so angepasst, dass es mit Perl Skripten
 32         funktioniert.
 33     14. taglist.vim
 34     15. tskeleton.vim
 35         Textschnitzel anlegen, und wenn gewünscht sogar interaktiv einfügen.
 36     16. visincrPlugin.vim
 37         Sehr schön, um auf die schnelle Zeilen zu Nummerieren.
 38     17. changes-0.12
 39         Mit :EnableDisplayChanges Änderungen zwischen aktuellem Buffer und
 40         gesichertem sehen. Nach dem Schreiben (:w oder ;yy) also wieder leer.
 41         :DisableDisplayChanges schaltet es wieder aus.
 42         Mit :let g:changes_hl_lines=1 wird die ganze Zeile eingefärbt.
 43         :let g:changes_autocmd=1 um die Änderungen ohne Aufforderung zu sehen.
 44         Da dann der Editor beim Ändern ständig flimmert, eher lästig.
 45         Die Anzeige in der linken Spalte überdeckt sich mit den showmarks
 46         Anzeigen.
 47 
 48     }}}
 49 Functions {{{
 50     Von mir erstellte Funktionen.
 51 
 52     1. Cmslog2table.vim
 53         Wandelt eine CMS log Datei so um, dass das Ergebnis direkt in die QR
 54         Word Datei einkopiert werden kann.
 55     2. CSVH.vim
 56         Um bei csv Dateien bestimmte Spalten zu Highlighten.
 57 
 58     }}}
 59 Spezielle Kommandos bei mir {{{
 60     Diese Kommandos habe ich mir in die .vimrc eingebaut, und sind nicht
 61     der vim Standard.
 62     Strg+Tab       - Den nächsten Puffer öffnen (:bn)
 63     Strg+Shift+Tab - Den vorherigen Puffer öffnen (:bp)
 64     <F2>  - Datum Uhrzeit im Normal Modus
 65     <F3>  - Tauscht das Wort unterm Cursor gegen aktuelles Datum im Normal Modus
 66     <F4>  - Setzt lcd auf den Pfad der aktuellen Datei, im Normal Modus
 67     <F7>  - :Slisttoggle, für Perl Skripte, listet die subs auf
 68     gdate - Datum im Eingabe Modus
 69     gtime - Uhrzeit im Eingabe Modus
 70     ;yy   - vom Eingabe Modus in den Normal Modus und speichern,
 71             ist wie <ESC>:w<CR>
 72     akr   - Im Eingabe Modus wird daraus mein Name
 73     fmu   - Im Eingabe Modus wird daraus Frank Mueller
 74     AK    - Im Normal Modus wird das Wort unterm Cursor und das folgende Wort
 75             durch meinen Namen ersetzt.
 76     gr    - im Normal Modus ein tab zurück, wie gT
 77     et    - öffnet Datei unterm Cursor in einen neuen tab und nicht
 78             im selben Fenster
 79     :Ssv <Spalte> - Markiert angegebene Spalte in einer CSV [;] Tabelle.
 80                     1 ist erste Spalte nach erstem Semikolon. Ähnliches gilt
 81                     für die Befehle :Csv mit Komma und :Tsv mit Tabulator.
 82     Folgende Zeichen werden automatisch im Eingabe Modus abgeschlossen
 83     ( [ {
 84     Da ich das plugin NERDTree installiert habe...
 85     ;TT   - Im Eingabe und im Normal Modus wird in den Normal Modus gegangen,
 86             die Datei gespeichert, und dann der NERDTree geöffnet/toggled.
 87             Funktioniert nicht bei einer neuen, leeren Datei, da dann nichts
 88             zum Speichern da ist.
 89             Ist das selbe wie <ESC>:w<CR>:NERDtree<CR>
 90     }}}
 91 Bildschirm horizontal/vertikal aufteilen {{{
 92     :split
 93     und vertikal
 94     :vsplit
 95     Aufteilen mit einer anderen als der aktuellen Datei
 96     :split <Datei>
 97     :vsplit <Datei>
 98     Das aktuelle Fenster schließen mit
 99     :close
100     Alle anderen als das aktuelle Fenster schließen
101     :only
102     Um die Fenstergröße zu setzen einfach die Anzahl der
103     Spalten/Zeilen angeben
104     :<Zeilen>split
105     :<Spalten>vsplit
106     Bei schon aufgeteilten Fenstern geht das am
107     einfachsten mit der Maus.
108 }}}
109 Wechseln zwischen aufgeteilten Fenstern {{{
110     Ctrl+w+w
111     Ctrl+w+<hjkl>
112     Das Fenster bewegen
113     Ctrl-w <HJKL>
114 }}}
115     Liste der geöffneten Dateien {{{
116     :ls
117     }}}
118 Wechseln zu anderen geöffneten Dateien {{{
119     Wechsel ist nur möglich, nachdem die aktuelle Datei gespeichert wurde.
120     Dies kann erzwungen werden, indem man an den folgenden Befehlen ein ! anhängt.
121     :bn
122     :bp
123     :b<Dateinummer>
124 }}}
125 Einen neuen Buffer anlegen {{{
126     :n <Dateiname>
127     oder eine neue Datei anlegen
128     :e <Dateiname>
129     Der Unterschied ist, dass ein Buffer nicht durch :q geschlossen wird, sondern
130     durch buffer delete
131     :bd
132     Eine neue Datei ist also kein neuer Buffer, aber die bisherigen Befehle
133     funktionieren trotzdem (sic!).
134     Durch am Anfang geöffnete Dateien (nicht Buffer) wandert man mit
135     :n
136     :N
137     :<Zahl>n
138     :<Zahl>N
139     :rew
140     :last
141     Die geöffneten Dateien kann man mit
142     :files
143     anzeigen lassen.
144 }}}
145 Das aktuelle Verzeichnis  {{{
146     :pwd
147 }}}
148 Stelle im Text markieren {{{
149     m<Buchstabe>
150     Zur markierten Stelle springen
151     '<Buchstabe>
152     (das ist das Hochkomma über #)
153     Mit '' wird zwischen den beiden zuletzt genutzten Sprungmarken hin und her
154     gesprungen.
155     Mit Kleinbuchstaben werden Marker für die aktuelle Datei gesetzt.
156     Mit Großbuchstaben Marker für beliebige Dateien. D.h., dass damit auf andere
157     Dateien gesprungen wird.
158     Ziffernmarker werden von Vim gesetzt, und gelten, wie Großbuchstaben, über
159     verschiedene Dateien hinweg.
160     Mit :marks werden alle Sprungmarken angezeigt.
161     }}}
162 ShowMarks Plugin {{{
163     Zeigt Marker an. Da ich in der vimrc den Wert von mapleader auf "," gesetzt
164     habe, ist der <LEADER> das Komma, und nicht der Standard "\".
165 
166     Eintrag in der vimrc:
167     let mapleader = ","                 " macht aus Standard Leader \ ein ,
168 
169     Die Kommandos sind:
170     ,mt - Schaltet ShowMarks an oder aus.
171     ,mo - Schaltet ShowMarks an und zeigt die Marker an.
172     ,mh - Löscht einen Marker.
173     ,ma - Löscht alle Marker.
174     ,mm - Setzt für die aktuelle Zeile den nächst möglichen Marker.
175     Zu den Markern springt man dann, wie gehabt, mit '<Marker>.
176     }}}
177 Autovervollständigen von schon vorhandenen Zeichenketten in der Datei, {{{
178     im Editiermodus
179     Ctrl-p
180     Ctrl-P
181 }}}
182 Mit * wechselt man zum nächsten auftreten des Wortes unterm Cursor. {{{
183     Mit g* wird das Wort unter dem Cursor gesucht, jedoch muss es dann nicht
184     als einzelnes Wort vorkommen, sondern darf auch innerhalb eines Wortes
185     stehen.
186 }}}
187 Mit # wechselt man zum vorherigen auftreten des Wortes unterm Cursor. {{{
188     Mit g# wird das Wort unter dem Cursor gesucht, jedoch muss es dann nicht
189     als einzelnes Wort vorkommen, sondern darf auch innerhalb eines Wortes
190     stehen.
191 }}}
192 Makroaufzeichnung starten {{{
193     q<Buchstabe>
194     Makro beenden
195     q
196     Makro ausführen
197     @<Buchstabe>
198 }}}
199 Mit vim zwei Dateien vergleichen {{{
200     vimdiff <datei1> <datei2>
201     Eine Datei mit geöffneter Datei vergleichen
202     :diffsplit <datei>
203 }}}
204 Bildschirm zeilenweise bewegen {{{
205     Ctrl-e
206     Ctrl-E
207     Ctrl-Y
208 }}}
209 Aktuelle Zeile auf Bildschirm zentrieren {{{
210     zz
211     nach unten
212     zb
213     nach oben
214     zt
215 }}}
216 Tabs/Reiter benutzen {{{
217     In tabs öffnen
218     :tabedit <Datei>
219     Auswählen eines Tabs mit Maus oder
220     <TabNummer>gt
221     TabNummer beginnt mit 1
222     oder durchwandern mit
223     gt
224     gT
225     Das geht auch mit Ctrl+PageDown oder Ctrl+PageUp
226     Alle anderen Tabs schließen
227     :tabonly
228     Aktuellen Tab schließen
229     :tabclose
230     Eine Liste der tabs mit
231     :tabs
232     Tabs können bewegt werden mit
233     :tabm <Zielnummer>
234     An den Anfang mit
235     :tabm 0
236     Ans Ende mit
237     :tabm
238     alle Dateien im Buffer als tabs öffnen
239     :tab ball
240 
241 }}}
242 Manuelle Folds werden angelegt mit  {{{
243     zf<Anzahl der Zeilen nach der aktuellen>
244     Automatsche Folds werden über den Marker {{{<Nummer> begonnen, und
245     mit }}} wieder geschlossen. Wenn hinter dem Marker keine Nummer
246     steht, ist der Fold Level 1. Die Fold Level gehen von 1 .. 12.
247     Ein Level wird geöffnet mit
248     zo
249     Alle Level unter dem Cursor werden geöffnet mit
250     zO
251     Ein Fold schließen mit
252     zc
253     Alle Folds unter dem Cursor schließen mit
254     zC
255     Alle Folds schließen
256     zM
257     Alle Folds öffnen
258     zR
259 }}}
260 Vim mit mehreren Tabs starten {{{
261     vim -p file1 file2 file3
262 }}}
263 Eine Vim Session speichern {{{
264     :mksession session.vim
265     Eine Vim Session öffnen
266     vim -S session.vim
267 }}}
268 Register {{{
269     Mit :reg wird der Inhalt der Register angezeigt.
270     Speichern in Register
271     "<Buchstabe><Kopierbefehl><Bewegungskommando>
272     Einfügen aus Register
273     "<Buchstabe><Einfügebefehl>
274     Beispiel:
275     "ayy - Zeile in Register a speichern
276     "ap  - Register a hinter Cursorposition einfügen
277     "" enthält letzten Zwischenspeicherinhalt, wie p oder P.
278     "0 - 9 die letzten 10 Zwischenspeicherinhalte.
279     In den Zwischenspeicher landet alles, was man speichert oder
280     löscht.
281 }}}
282 Explorer {{{
283     Mit :Explorer öffnet sich ein "Dateimanager", was das Suchen nach Dateien
284     vereinfachen kann.
285 }}}
286 Dateiinhalt einfügen {{{
287     :r <datei>
288     Fügt den Inhalt einer Datei an der Cursorposition ein.
289 }}}
290 Groß-/Kleinschreibung ändern  {{{
291     ~
292     Wird solange gemacht, bis ESC gedrückt wird.
293 }}}
294 Um die Hilfe für das Wort unter dem Cursor aufzurufen drückt man K. {{{
295 }}}
296 80i-ESC erzeugt 80 Bindestriche {{{
297     --------------------------------------------------------------------------------
298 }}}
299 Um zu einer bestimmten Zeile zu springen kann man natürlich mit {{{
300     <Nummer>G
301     arbeiten. Aber
302     :<Nummer>
303     funktioniert auch.
304 }}}
305 Buchstabendreher korrigieren mit xp {{{
306 }}}
307 Wörter tauschen dwwP {{{
308 }}}
309 Zeilentausch ddp {{{
310 }}}
311 Datum oder Zeit einfügen {{{
312     :r!date
313     :r!time
314     wobei unter DOS zweimal Enter gedrückt werden muss.
315     Es erscheint dann
316     Aktuelles Datum: 02.03.2011
317     Geben Sie das neue Datum ein: (TT-MM-JJ)
318     Aktuelle Zeit:  9:21:07,31
319     Geben Sie die neue Zeit ein:
320     Die unnötigen Zeilen kann man mit dd dann wieder löschen.
321 }}}
322 Kopieren und einfügen: Vim vs. Windows {{{
323     "*<Kopierbefehle>
324     Kopiert in das System Clipboard, und steht mit Strg+v unter Windows bereit.
325     Umgekehrt kann aus dem Clipboard mit "*p in vim eingefügt werden.
326 }}}
327 Syntax für Filetype automatisch erkennen {{{
328     Damit Vim die Syntax entsprechend dem Dateityp aktiviert muss in der
329     .vimrc der Befehl
330     set syntax on
331     stehen, und in die Datei ~/.vim/filetype.vim
332     bsw. folgendes stehen.
333     " added for ats and atr files
334     augroup filetypedetect
335         au BufNewFile,BufRead *.ats setf ats
336         au BufNewFile,BufRead *.atr setf ats
337     augroup END
338     }}}
339 Dateityp setzen, wenn automatische Erkennung nicht funktioniert. {{{
340     :set filetype=ats
341 }}}
342 Syntax setzen, wenn automatische Erkennung nicht funktioniert. {{{
343     :set syntax=todo
344     Einfacher mit
345     :set syn=todo
346 }}}
347 Datei öffnen mit Hilfe von Drag and Drop {{{
348     :tabedit <mit Maus reinziehen>
349 }}}
350 DOS vs. Unix Format {{{
351     Das Format der aktuellen Datei ermittelt man mit
352     :set ff
353     Geändert wird es mit
354     :set ff=unix
355     :set ff=dos
356 }}}
357 Hilfreiche Suchmuster {{{
358     Suchen nach einem Zeichen und dessen gehäuften auftreten.
359     /X\+
360 }}}
361 Tabulatoren setzen mit {{{
362     < zum zurücksetzen
363     > zum vorrücken
364 }}}
365 Die aktuelle Datei als html Datei speichern geht recht einfach mit {{{
366     :TOhtml
367 }}}
368 Undo, Redo {{{
369     Mit u kann man die letzten Eingaben rückgängig machen. Um das rückgängig
370     machen rückgängig zu machen dann U drüclen.
371 }}}
372 Verschlüsseln/Entschlüsseln {{{
373     :X
374     Passwort eingeben
375     :w
376 
377     Zum entfernen der Verschlüsselung einfach mit
378     :set key=
379     das Passwort entfernen.
380 
381     In .vmrc
382     set cryptmethod=blowfish
383 
384     Falls beim öffnen kein oder das falsche Passwort eingegeben wird, wird die
385     Datei im verschlüsselten Zustand angezeigt.
386     Neue Passwortabfrage erfolgt nur nachdem die Datei aus dem Buffer entfernt
387     worden ist. :bd
388 }}}
389 Such-Highlights entfernen mit :noh {{{
390     Dies gilt nur bis zum drücken von n oder N, womit
391     die alte Suche wieder beginnt.
392 }}}
393 Blockweise einrücken {{{
394     <aB
395     >aB
396 }}}
397 Datei unter dem Cursor öffnen {{{
398     gf
399     Zurück zum letzten Buffer mit :b#
400     Um die Datei unterm Cursor in einem neuen Tab zu öffnen
401     Ctrl+w gf
402     eingeben.
403 }}}
404 Visueller Modus {{{
405     Bei gVim wird blockweises markieren im visuellen Modus mit Strg+q gestartet.
406 }}}
407 Bestimmte Zeilen löschen {{{
408     <Anfang>,<Ende>d
409     3,45d
410     löscht somit die Zeilen 3 bis einschließlich 45.
411     }}}
412 Zeilen mit bestimmten Inhalt löschen {{{
413     :g/foo/d
414     löscht alle Zeilen die foo enthalten
415     :g!/foo/d
416     löscht alle Zeilen die foo nicht enthalten
417     Leerzeilen können somit einfach mit
418     :g/^$/d
419     gelöscht werden. Zeilen die nur Leerzeichen enthalten entsprechend mit
420     :g/^\s\+$/d
421     }}}
422 Drucken mit :hardcopy {{{
423     Um Abfragedialog zu umgehen, und gleich alles auf den
424     Standarddrucker auszudrucken
425     :hardcopy!
426     Man kann auch einen Bereich angeben
427     :2,5hardcopy
428     druckt bsw. die Zeilen 2 bis einschließlich 5.
429     }}}
430 Lustiges {{{
431     :h 42
432     :h holy-grail
433     :h!
434     }}}
435 Pfad der aktuellen Datei als lcd {{{
436     :lcd %:p:h
437     }}}
438 Schnelles Highlight {{{
439     :syn match Type "pattern"
440     :syn keyword Type keyword
441     Für die Farben siehe :h group-name
442     Beispiele:
443     :syn match Type ";.*_in_WB"ms=s+1
444     :syn match Special "^\d\+;"me=e-1
445     }}}
446 Ändern bis zu einen bestimmten String {{{
447     d/fred/    :löschen bis fred
448     y/fred/    :kopieren bis fred
449     c/fred/e   :ändern bis einschließlich fred
450     }}}
451 vimrc neu ausführen {{{
452     :source $VIM/_vimrc
453     }}}
454 Vim Kommando der aktuellen Textzeile ausführen {{{
455     "ayy@a
456     Guter Trick für
457     :tabedit <Datei>
458     anders als gf, welches im selben tab öffnet
459     Noch schneller geht das mit yy@0
460     }}}
461 Speichern als {{{
462     :sav <neuer Dateiname>
463     }}}
464 Dateiname einfügen {{{
465     Dateiname inklusive Pfad!
466     im Normal Modus
467     "%p
468     im Eingabe Modus
469     Ctrl+r %
470     % enthält den Namen des aktuellen Buffers
471     # enthält den Namen des zuletzt geöffneten Buffers
472     }}}
473 Zeilen kommentieren/auskommentieren {{{
474     Kommentieren:
475     :<ersteZeile>,<letzteZeile>s/^/#/
476     :<ersteZeile>,<+-AnzahlZeilen>s/^/#/
477     Auskommentieren
478     :<ersteZeile>,<letzteZeile>s/^#//
479     :<ersteZeile>,<+-AnzahlZeilen>s/^#//
480     Im Visual Modus
481     Erst 0 um an den Anfang der Zeile zu springen, und dann Strg+q
482     für Blockweise Visual Modus. Jetzt mit [jk] die gewünschten Zeilen
483     markieren.
484     I # ESC fügt dann # ein.
485     x löscht wieder.
486     }}}
487 Vimpress Kommandos {{{
488     :BlogList       Lists all articles in the blog
489     :BlogNew        Opens page to write new article
490     :BlogOpen id    Opens the article for edition
491     :BlogSend       Saves the article to the blog
492     :BlogDefault    Define the default blog using the of the config file
493     }}}
494 Fileformat {{{
495     Um das Fileformat ausgeben zu lassen
496     :set ff?
497     eingeben.
498     Zum setzen
499     :set ff=dos|unix|mac
500     Damit neue Dateien immer unix Format geschrieben werden
501     :set ffs=unix,dos
502     in die .vimrc eintragen.
503     Für die Abfrage des gesetzten Wertes
504     :set ffs?
505     }}}
506 Zeichen aus oberer Zeile kopieren {{{
507     Im Insert Mode Strg+y eingeben kopiert das Zeichen aus der Zeile über der
508     aktuellen in die momentane. Von unten kopieren geht mit Strg+e.
509     }}}
510 Buffer Inhalt in ex Mode nutzen {{{
511     Dafür den gewünschten Befehl erst einmal in ein Register laden.
512     In das Register 0 bsw. mit yy
513     Danach in den ex Modus wechseln mit : und dann Strg+R 0 eingeben.
514     Mit Enter dann ausführen.
515     Das geht auch mit den anderen Buffern. Dafür dann statt 0 die gewünschte
516     Buffer Adresse eingeben.
517     }}}
518 Kommandozeilenhöhe einstellen {{{
519     :set cmdheight=2
520     }}}
521 Optionen setzen {{{
522     Um alle Optionen und ihre Einstellungen zu sehen und zu setzen kann man
523     auch :options nutzen.
524     }}}
525 Mittlere Maustaste - Einfügen {{{
526     Bei gVim fügt die mittlere Maustaste den zuletzt mit der Maus markierten
527     Text ein. Ist wie bei Linux.
528     }}}
529 Sprünge {{{
530     Jumps sind alle Kommandos, die den Cursor mehr als ein Zeichen weit bewegen.
531     Dazu gehören auch Sprünge in andere Dateien, und das anlegen einer neuen
532     Datei.
533     Eine Liste der Sprünge kann man sich mit :ju anzeigen lassen.
534     Zurück springt man mit Strg+O, und vorwärts mit Strg+I.
535     }}}
536 Uppercase/Lowercase {{{
537     gU<Bewegung> setzt die Zeichen in "Bewegung" in Großbuchstaben.
538     gu<Bewegung> setzt die Zeichen in "Bewegung" in Kleinbuchstaben.
539     Mann kann auch mit v zuerst Wörter markieren, und dann mit Hilfe der
540     Kommandos diese Wörte groß/klein setzen.
541     }}}
542 Muster finden, und darunter/darüber eine neue Zeile einfügen {{{
543     :g/pattern/normal Oi<line of text goes here>
544     }}}
545 Zeile unter der Zeile mit Suchmuster bearbeiten {{{
546     :g/<pattern>/+{cmd}
547     }}}
548 Zeilen bei Spalte 79 umbrechen {{{
549     Die aktuelle Zeile kann mit gqgq umgebrochen werden.
550     Mit gq<Bewegung> kann ein Bereich "formatiert" werden.
551     Vorsicht, der Befehl beinhaltet auch Join Lines!
552     Die kann mit
553         :g/./normal gqq
554     umgangen werden.
555     }}}
556 Vim Plugin tSkeleton {{{
557     Dieses Paket dient dazu, immer wiederkehrende Textbausteine relativ einfach
558     in einen Text einzufügen.
559 
560     Notwendige Vim Pakete:
561         tSkeleton http://www.vim.org/scripts/script.php?script_id=1160
562         02tlib http://www.vim.org/scripts/script.php?script_id=1863
563         stakeholders http://www.vim.org/scripts/script.php?script_id=3326
564 
565     Empfohlendes zusätzliches Paket:
566         tskeleton.zip, enthält Beispiele.
567 
568     Anpassungen:
569         An das Ende der Datei .../plugin/tskeleton.vim das Kommando
570             call TSkeletonMapGoToNextTag()
571         einfügen.
572 
573     Eigene Codeschnipsel:
574         Ich für meinen Teil habe unter .../skeleton/bits einen eigenen Ordner
575         für einen filetype angelegt, der nur bei meiner Arbeit genutzt wird.
576         Dort dann einfach die Codeschnippsel anlegen, wie in der tSkeleton
577         Hilfe beschrieben. Wichtig ist, dass nach dem Anlegen neuer Schnippsel
578         der Befehl :TSkeletonBitReset ausgeführt wird. Dies sorgt dafür, dass
579         die neuen Schnippsel auch eingelesen werden.
580 
581     Benutzung:
582         Sobald alles eingerichtet ist kann während des Schreibens im
583         Einfügen-Modus, nach der Eingabe eines Schnippselnames, zweimal Strg+#
584         eingegeben werden, und schon steht da der Inhalt des Schnippsels. Im
585         Normal-Modus setzt man den Cursor an das Ende des Schnippselnamens und
586         tippt ,## ein. Wobei bei mir das Komma als <LEADER> fungiert, das mag
587         bei anderen anders sein. Zu den Platzhaltern springt man dann mit
588         Strg-j.
589 }}}
590 Text wieder benutzen {{{
591     Es kommt immer mal wieder vor, dass man in einer Textdatei einen bestimmten
592     Satz immer wieder schreiben muss. Jetzt gibt es bei Vim verschiedene Wege,
593     diesen Satz zu speichern und wieder einzufügen.
594 
595     Den Satz in einen Register speichern, wie man es halt meist macht.
596 
597     Falls das schreiben des Satzes die letzte Tätigkeit war, das editieren mit
598     "." wiederholen. Dumm nur, wenn man zwischendurch anderes editiert hat.
599 
600     Eher ungewöhnlich, aber insofern schön, da es dem Plugin tSkeleton ähnelt.
601     Für die Session den Satz via :abbr speichern und einfügen. Dafür makiert
602     man am Besten den Satz erst einmal und speichert ihn mit "y". Jetzt noch
603     :abbr kuerzel Strg-R 0
604     und schon wird beim eintippen von kuerzel der Satz eingefügt. Aber Obacht,
605     nach einem Neustart von Vim in die Abkürzung weg. Dies ist hier aber
606     gewollt.
607 }}}
608 Hex Editor {{{
609     Datei im Hex Modus schalten:
610     :%!xxd
611     und zurück mit
612     :%!xxd -r
613 }}}