Gegeben:Ist es möglich, rekursive Makros mit dem normalen Befehl von Vim aufzuzeichnen und auszuführen?
https://stackoverflow.com/questions/ask
Vom Normalbetrieb mit dem ersten Zeichen, in qaqqaf/[email protected]@a
eingeben schlitzt das sich auf alle löscht.
- QAQ löscht den ein Register
- qa zu einem Aufzeichnung beginnt
- f/x löscht den nächsten Schrägstrich
- @a erneut läuft das Makro
- q beendet die Aufzeichnung
Aber läuft normal qaqqaf/[email protected]@a
stoppt nach b - es scheint bei dem rekursiven Anruf zu bailen. Das Gleiche passiert, wenn Sie versuchen, den Befehl zu mappen.
Stimmt etwas mit meiner Syntax nicht? Oder ist es nicht möglich, ein rekursives Makro mit normal
aufzuzeichnen?
Hinweis: Ich weiß, es ist möglich, eine rekursive Makro mit let
zu schreiben. Ich frage mich, ob dies der einzige Weg ist, eine rekursive Makro zu schreiben, ohne es manuell Aufnahme:
let @a = "f/[email protected]"
normal @a
(Ich frage, weil dieser Antwort: Remove everything except regex match in Vim)
Vim kann alles in einem Register als Makro auszuführen. Also, wie auch immer Sie Ihre Befehle in ein Register bekommen, wäre ein Weg, wie im Text zu reißen. Ich glaube, es sei der beste Weg, dies für ein Mapping zu tun. –
Richtig, aber ist es möglich, ein rekursives Makro ** mit 'normal' ** aufzunehmen? – idbrii
es scheint, dass "normal" rekursive Makros nicht gut behandelt. Ich kann nicht scheinen, um einen richtig aufzunehmen. Sie können aber 'execute' und' feedkeys() 'wie folgt verwenden:' exe feedkeys ("qaqqar_l @ aq @ a", "t") 'um sowohl das Makro aufzunehmen als auch auszuführen. –