2013-03-08 11 views
8

Pracuję nad Vimscript, który wykonuje pewne manipulacje ciągami. Zastanawiam się, czy istnieje sposób na wygenerowanie łańcucha przez pomnożenie innego ciągu przez pewną liczbę. Na przykład 'a' * 5 będzie produkować 5 a: 'aaaaa'. Do tej pory robiłem to z while pętli tak:Generowanie ciągu wielu kopii podciągu w 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 

Wydaje strasznie gadatliwy za to, co robię. Jakikolwiek sposób, aby to było bardziej kompaktowe?

Odpowiedz

11

Funkcja repeat() może to zrobić; nie tylko dla ciągów, również dla elementów listy:

:let l:somestr = repeat(l:char, l:x) 
Powiązane problemy