5 Stimmen

Was ist die beste Strategie für Code-Blöcke und Makros in Vim?

Je mehr ich mit Vim entwickle, desto mehr möchte ich Blöcke mit nützlichem Code hineinkopieren, ähnlich wie bei den "Vorlagen" in Eclipse.

Ich habe daran gedacht, für jeden Codeabschnitt eine eigene Datei zu erstellen und sie einfach mit

:r code-fornext

aber das scheint mir doch etwas primitiv zu sein. Googeln um ich finde Vim Makros erwähnt und etwas über "Karten", aber nichts, was scheint geradeaus.

Was ich suche, sind z.B. so etwas wie Eclipse's "Templates", so dass ich einen Code-Chunk mit dem Cursor in der Mitte sitzend einfügen kann. Oder die "Makros" von JEdit, die ich aufzeichnen kann, um komplizierte Löschungen und Umbenennungen in einer Zeile vorzunehmen, und die ich dann in 10 anderen Zeilen abspielen kann, damit sie das Gleiche tun.

Hat vim etwas Ähnliches wie diese beiden Funktionalitäten?

8voto

brian newman Punkte 3738

Um Makros in Vim aufzuzeichnen, drücken Sie im Befehlsmodus die Taste q Taste und eine andere Taste, der Sie das Makro zuweisen möchten. Für schnelle Wegwerfmakros drücke ich normalerweise einfach qq und weisen Sie das Makro dem Feld q Taste. Sobald Sie sich im Aufnahmemodus befinden, gehen Sie Ihre Tastenanschläge durch. Wenn Sie fertig sind, stellen Sie sicher, dass Sie sich wieder im Befehlsmodus befinden und drücken Sie q erneut, um die Aufzeichnung zu beenden. Um das Makro dann manuell abzuspielen, können Sie Folgendes eingeben @q . Um das zuvor ausgeführte Makro erneut abzuspielen, können Sie Folgendes eingeben @@ oder um es 10 Mal auszuführen, können Sie Folgendes eingeben 10@q ou 20@q , usw..

Zusammengefasst:

+----------------------------------+-------------------------------------+
| start recording a macro          | qX (X = key to assign macro to)     |
+----------------------------------+-------------------------------------+
| stop recording a macro           | q                                   |  
+----------------------------------+-------------------------------------+
| playback macro                   | @X (X = key macro was assigned to)  |
+----------------------------------+-------------------------------------+
| replay previously played macro   | @@                                  |
+----------------------------------+-------------------------------------+

In Bezug auf Code Chunks habe ich ein Vim-Plug-in namens snipMate gefunden und angefangen, es zu benutzen, das die Snippets-Funktion von TextMate nachahmt. Sie können das Plug-in hier bekommen:

http://www.vim.org/scripts/script.php?script_id=2540

Und ein kurzer Artikel über die Verwendung von snipMate (zusammen mit einem kurzen Screencast, der die Verwendung zeigt):

http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

Ich hoffe, Sie finden dies hilfreich!

0voto

Luc Hermitte Punkte 30868

Auf vim.wikia finden Sie eine Kategorie der Tipps für die Erweiterung von Schnipseln und Abkürzungen. Sie werden auch eine Liste von Plugins sehen, die die Definition komplexer Snippets/Templates-Dateien erleichtern.

HTH,

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X