我在menu.vim中創建了很多函數。vim中的子函數
我注意到在許多函數中使用了相同的代碼,這就是爲什麼我決定使用 子函數清理我的文件。
體育課,這是什麼樣的代碼往往返回我的功能:
let zoek = @/
if a:type == "'<,'>"
let r = substitute(zoek, '\\%V', '', 'g')
elseif a:type == "%"
let r = zoek
endif
let a = substitute(r, '\', '', 'g')
if matchstr(d, '>') == '>' || matchstr(d, '<') == '<'
let e = substitute(d, '\zs>\(\d\+\)%<\ze', '\1-', 'g')
endif
我怎樣才能從中創建一個子功能?我怎樣才能調用它?
Vim有子功能嗎?
謝謝,是否也可以使用g:變量從子函數中導入一個值,並在函數結束時將它解開,或者是否無法解開g:變量? – Reman
@Remonn。是的,但爲什麼你不能只返回需要導入的值? //即使不能,也不要污染全局範圍,請使用':variable'。///還有一個提示:在函數內部有一個包含所有函數局部變量的'l:'字典。您可以將其傳遞給子功能,並以某種方式修改。 – ZyX
你可以舉例說明如何將列表作爲l:list傳遞給子函數(這是實際函數的外部),以及如何在函數中再次導入它?我在許多函數中使用列表「listlines」,但沒有g:在它不起作用之前。 – Reman