2011-09-29 218 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' –