2008-09-10 10 views
5

Da ich mehr mit vim entwickle, möchte ich in Blöcke von nützlichem Code kopieren, ähnlich wie "Vorlagen" in Eclipse.Was ist die beste Strategie für Code-Chunks und Makros in vim?

Ich dachte an eine separate Datei für jeden Code Chunk machen und sie zu lesen gerade mit

:r code-fornext 

aber das scheint nur irgendwie primitiv. Beim googlen finde ich vim-macros erwähnt und etwas über "maps" aber nichts, was einfach scheint.

Was ich suche sind z. etwas wie Eclipse "Templates", so dass ich einen Code-Chunk mit dem Cursor in der Mitte sitzt. Oder JEdits "Makros", die ich aufzeichnen kann, macht komplizierte Löschungen und Umbenennen in einer Zeile, dann kann ich es wieder auf 10 anderen Zeilen spielen, so dass es ihnen auch gleich tut.

Hat Vim so etwas wie diese beiden Funktionen?

Antwort

8

Um Makros in Vim aufzuzeichnen, drücken Sie im Befehlsmodus die Taste q und eine weitere Taste, der Sie das Makro zuweisen möchten. Für schnelle Wegwerf-Makros wähle ich normalerweise einfach qq und weise das Makro dem q Schlüssel zu. Wenn Sie sich im Aufnahmemodus befinden, durchlaufen Sie Ihre Tastenanschläge. Wenn Sie fertig sind, stellen Sie sicher, dass Sie wieder im Befehlsmodus sind und drücken Sie erneut q, um die Aufzeichnung zu stoppen. Um das Makro dann manuell wiederzugeben, können Sie @q eingeben. Zum Abspielen der zuvor gelaufenen Makro Sie @@ eingeben können oder es 10-mal laufen Sie geben könnte [email protected] oder [email protected], etc ..

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 die Code-Brocken, ich habe festgestellt, und begann mit einem Vim-Plugin namens snipMate, das die Snippet-Funktion von TextMate nachahmt. Sie können das Plug-in hier:

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

Und einen kurzen Artikel über die Verwendung snipMate (zusammen mit einer kurzen Screencasts es im Gebrauch zeigt):

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

Hoffe, dass Sie diese finden hilfreich!

+0

@@ scheint nur für die Version 7 zu arbeiten, aber ich kann es mit @q in Version 6, sehr nützlich nennen, danke! –

0

Auf vim.wikia finden Sie eine category of tips, die der Erweiterung von Snippets und Abkürzungen gewidmet ist. Sie sehen auch eine Liste von Plugins, die die Definition komplexer Snippets/Templates-Dateien erleichtern.

HTH,