2013-03-08 8 views
8

Sto lavorando a un Vimscript che esegue alcune manipolazioni di stringhe. Mi chiedo se c'è un modo per generare una stringa moltiplicando un'altra stringa di qualche multiplo. Ad esempio, 'a' * 5 produrrebbe 5 a: 'aaaaa'. Fino ad ora, ho fatto con un ciclo while come questo:Creazione di una stringa di più copie di una sottostringa in Vim

let l:char = 'a' 
let l:x = 5 
let l:i = 0 
let l:somestr = "" 
while l:i < l:x 
    let l:somestr .= l:char 
    let l:i += 1 
endwhile 

Questo sembra terribilmente prolisso per quello che sto facendo. Un modo per renderlo più compatto?

risposta

11

La funzione repeat() può farlo; non solo per le stringhe, anche per gli elementi della lista:

:let l:somestr = repeat(l:char, l:x) 
Problemi correlati