2016-10-15 1 views
0

Beispielmakro reg a :s/a/b/^M:s/c/d/^M Die^M's sind gültig.Hinzufügen von^M zum Ende des Befehls in einem Makro auf gvim für Windows

Ich versuche, das in meiner _gvimrc-Datei zu speichern, die technisch funktioniert, aber die^M's sind ungültig.

let @a = ':s/a/b/^M:s/c/d/^M' 

Wenn ich es ausführen bekomme ich "Trailing Characters" Fehler.

Ich habe verschiedene Dinge wie \ r, \ n und \ r \ n ausprobiert.

Die Frage ist also, gibt es eine Möglichkeit, eine neue Zeile in meinem gespeicherten Makro zu bekommen?

Ich sollte auch hinzufügen, dass, wenn es eine bessere Möglichkeit gibt, darüber zu gehen, die keine Makros beinhaltet, ich für Vorschläge offen bin. Ich habe 3 oder 4 Suchen und Ersetzen Befehle, die ich gegen meine Protokolldateien ausführen möchte.

Antwort

0

Verwenden Sie stattdessen <cr>. Und möglicherweise <bar> der eine zwischen den beiden Anrufe - ich erinnere mich nie.

Andernfalls Sie könnten auch einen Befehl (:h :command)

" <bar> or <cr> ? i.e: untested 
:command! -nargs=0 -range=1 MySub :s/a/b/<bar>:s/c/d/ 
+0

Danke, nein Glück mit denen entweder. Ich habe am Ende eine Skriptdatei verwendet, die wahrscheinlich für jetzt gut genug ist. 'gvim.exe" -s cmds.txt mylogfile.log' cmds.txt ': 1, $ s/a/b/g' eine Zeile für jeden Befehl und ein Zeilenumbruch am Ende, um die letzte Zeile auszuführen. – kweinert

0

definiert Beide wörtlichen^M sowie in doppelten Anführungszeichen, entkam \<CR> sollte gut funktionieren:

let @a = 's/a/b/^M:s/c/d/^M' 
let @b = "s/a/b/\<CR>:s/c/d/\<CR>" 
Verwandte Themen