2013-02-18 12 views

Antwort

3

versuchen, diese Zeile:

:s/123/\=b:myvar/ 
9

Kent Antwort funktioniert gut für t das Ersatzteil; für generische Einfügen, wenn interaktiv den Ersatz Befehl eingeben, können Sie jeden Ausdruck einfügen (nicht nur Variablen, auch Funktionen etc.) über <C-R><C-R>= (diese als Ctrl eingegeben werden muss + R, nicht wörtlich):

:substitute/<C-R><C-R>=b:myvar<CR>/replacement/<CR> 

in einem Skript, dann würden Sie :execute verwenden:

:execute 'substitute/' . b:myvar . '/replacement/' 
+0

Das funktioniert nicht, wenn die Variable, die an der Stelle von 'b: myvar' verwendet wird, sich ändert, was ich sagen kann, zum Beispiel wenn es sich um eine Schleifenvariable handelt. – hippietrail

+1

@hippietrail: Die Schleife müsste um die Linie sein, also funktioniert das. Die einzige Einschränkung besteht darin, die Ersetzungen zu ändern, aber dann müssen Sie einen Ausdruck und keine einfache Variable verwenden und Kents Antwort folgen. –

+0

OK Ich bin sehr neu in diesem Aspekt von Vim und hatte eine Pseudo-Schleife (global mit inkrementierender Variable) innerhalb einer echten Schleife. Aber ich habe es zur Arbeit gebracht. Danke für die Antwort. – hippietrail

Verwandte Themen