我想要生成連續的文件名,從當前緩衝區的名稱中取最後的2+位數 ,並從那裏開始向上計數。像這樣: 08a01 > 08a02 > 08a03 > ...
。Vim:函數中如何從「01」到「02」(而不是「01」>「2」)計數?
我使用的片段(thanks for initial advice,英戈Karkat!)省去了零, 像08a01 > 08a2 > 08a3 > ...
生產序列。
if b:current_buffer_name =~ '\d\+$'
let lastDigit = matchstr(b:current_buffer_name, '\d\+$')
let newDigit = lastDigit + 1
let s:new_file_name = substitute(b:current_buffer_name, '\d\+$', newDigit, '')
else
let s:new_file_name = b:current_buffer_name . '01'
我怎麼能告訴Vim,它應該向上計數「與 零」的功能?我試圖加之前 如果條件(建議here),但沒有奏效。
感謝您的任何解釋!
我嘗試這個解決辦法,但我althought刪除''從選項nrformats'價值octal' ,它使用它進行計算。嘗試使用像foobar004562這樣的文件名。 – Birei
@Birei哦,thx,我忽略了八進制的東西!增加一個'str2nr()'將會修復它。答案已更新。 – Kent
順便說一句,該選項是'c-a/x',不會影響'+'表達式。 @Birei – Kent