2011-09-29 122 views
3

爲什麼如下:Vim腳本:如何在vim的函數執行命令

let s:colorschemes = ['synic', 'ir_black'] 
let s:colorscheme_idx = 0 

function! RotateColorscheme() 
    let s:colorscheme_idx += 1 
    let s:name = s:colorschemes[s:colorscheme_idx] 
    echo s:name 
    colorscheme s:name 
endfunction 

不執行colorscheme? Vim抱怨以下錯誤'無法找到colorschem s:name'。我如何告訴它,我想讓它消除這個變量,而不是直接將它應用於:colorscheme?

回答

5

看看vim.wikia.com這個腳本,它幾乎可以滿足你的要求。

重點線似乎是這樣的一個:

let nowcolors = 'elflord morning desert evening pablo' 
    execute 'colorscheme '.split(nowcolors)[i] 
+1

感謝,但你知道我爲什麼需要使用執行?我不需要在它上面的echo線使用execute?什麼使得:echo不同於:colorscheme? – sashang

+0

請參閱':help exe'與':help echo' –