2013-02-18 12 views

risposta

3

provare questa linea:

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

risposta di Kent funziona bene per t la parte di ricambio; per l'inserimento generico quando digitando il comando sostituto interattivo, è possibile inserire qualsiasi espressione (non solo variabili, anche le funzioni ecc) attraverso <C-R><C-R>= (questi devono essere digitate come Ctrl +R, non letteralmente):

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

all'interno di uno script, utilizza :execute:

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

Questo non funziona se la variabile usata nel posto di 'b: myvar' cambierà, da quello che posso dire, per esempio se è una variabile di loop. – hippietrail

+1

@hippietrail: il ciclo dovrebbe essere intorno alla linea, quindi funziona. L'unica limitazione è per le varianti di sostituzione, ma poi dovresti usare un'espressione, non una semplice variabile, e seguire la risposta di Kent. –

+0

OK Sono molto nuovo in questo aspetto di Vim e ho avuto uno pseudo loop (globale con variabile incrementale) all'interno di un loop reale. Ma l'ho fatto funzionare. Grazie per la risposta. – hippietrail

Problemi correlati