Nicht wirklich eine Antwort: Wenn Sie sich bereits an einem Punkt befinden, an dem Sie erkennen, dass Sie dies automatisieren sollten (für Hunderte von Funktionen), sollten Sie einen Schritt weitergehen und es vollständig automatisieren: Schreiben Sie einen Code-Generator in insert_your_favourite_language_here
.
Wie kann ich vim verwenden, um dies zu automatisieren ...?
426
flumpb
Ich implementiere im Moment hunderte von ähnlichen Funktionen, die die Form annehmen
String name(String arg1, String arg2, String arg3, String arg4) { trampoline("name=&arg1=&arg2=&arg3=&arg4=", name, arg1, arg2, arg3, arg4); }
Der schwierige Teil ist, dass die Funktion zwischen 2 und 10 Argumente annehmen kann.
Wenn ich eine Möglichkeit hätte, dass vim mich nach "Name der Funktion:", "Anzahl der Argumente:", "arg1:" fragt, könnte ich diese Funktionen problemlos erstellen.
Wenn Sie weitere Informationen benötigen, um mir zu helfen, wäre ich mehr als bereit zu liefern.
Vielen Dank
3 Antworten auf die Frage
1
akira
Ich denke gerade darüber nach, dies zu tun, aber ich würde gerne mit vim besser umgehen.
flumpb vor 12 Jahren
0
gute absicht aber für diese aufgabe vielleicht die falsche zeit :)
akira vor 12 Jahren
0
Ein guter Punkt, ich habe den Generator geschrieben (in ..... ++) und alle Methoden beendet :). Ich muss vim Scripting in einer freien Zeit zu einem anderen Zeitpunkt lernen
flumpb vor 12 Jahren
0
1
uzsolt
Erste Idee: in vim hat for
(Try :help for
).
Sie können dazu eine einfache Funktion erstellen.
0
Luc Hermitte
Hier ist eine Antwort, die auf mu-template basiert (es sollte leicht sein, es in plain viml mittels zu portieren :put
).
VimL: " /template//.template VimL: let s:nb_args = INPUT("Number of args: ") VimL: let s:args=map(copy(range(1,s:nb_args)), '"arg".v:val') VimL: let s:formal = join(map(copy(s:args), "'String '.v:val"), ', ') VimL: let s:real = join(s:args, ', ') VimL: let s:format = join(map(copy(s:args), "v:val.'={'.v:val.'}'"), '&') String name(<+s:formal+>) { trampoline("name=&<+s:format+>", name, <+s:real+>); }
Verwandte Probleme
-
3
Wie kann ich eine Verzeichnisstruktur "invertieren"?
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
7
Starten Sie den Synergy-Client beim Booten in Mac OS X
-
13
Welche Vim-Funktionen verwenden Sie?
-
5
Mit Updates auf dem Laufenden bleiben?
-
4
Wie synchronisieren Sie GreaseMonkey-Skripts zwischen Computern?
-
8
Mit einem Tastendruck die mit "Leertaste" markierte "Registerkarte" in Vim löschen
-
3
Automatisierte Bulk-Screencaps von Videos
-
1
Kann ich ein Skript schreiben, das Benutzer automatisch wechselt?
-
6
Guter PowerShell-Leitfaden, der durch fortgeschrittene Verwendung Einstieg leistet