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