vim脚本:如何在vim函数中执行命令

sas*_*ang 8 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
Run Code Online (Sandbox Code Playgroud)

不执行colorscheme?Vim抱怨以下错误'找不到colorschem s:name'.我如何告诉它我希望它能够对该变量进行反驳,而不是直接应用于:colorscheme?

Fre*_*ihl 8

看看vim.wikia.com上的这个脚本,它可以满足您的要求.

关键线似乎是这样的:

let nowcolors = 'elflord morning desert evening pablo'
  execute 'colorscheme '.split(nowcolors)[i]
Run Code Online (Sandbox Code Playgroud)