分页: 1 / 1

vim,如何将字符串定义为函数

发表于 : 2010-12-04 20:55
自由建客
eval() 可把一表达式的字符串给执行了,但仅限于表达式,返回其值。现有一字符串,欲将其定义为函数,有什么办法?
简单说,比如有

代码: 全选

let s:str="wincmd x\nreturn 2"
怎么定义一个函数,内容就是 s:str ,这个 str 是运行时才能确定的,所以不能

代码: 全选

fun myfun()
  wincmd x
  return 2
endfun
这样的硬编码。

Re: vim,如何将字符串定义为函数

发表于 : 2010-12-04 21:26
lilydjwg

代码: 全选

:help :exec
麻烦你先把文档通读一遍再来问问题。

Re: vim,如何将字符串定义为函数

发表于 : 2010-12-04 21:41
自由建客
我知道 exe ,只是一下没想到这么个用法。这些天烦死了,我是不是该休息一下,不搞 vim 先!

代码: 全选

let s:str1=	"echo \"hello************\"\nreturn {}"
exe "fun s:MyFun()\n".s:str1."\nendfun"

Re: vim,如何将字符串定义为函数

发表于 : 2010-12-04 21:46
xhy
遇到无视文档派,2楼要抓狂了 :em04

Re: vim,如何将字符串定义为函数

发表于 : 2010-12-04 21:56
自由建客
xhy 写了:遇到无视文档派,2楼要抓狂了 :em04
这些天我整天读文档都快疯了!说老实话,这问题我开始想的是高阶函数。

Re: vim,如何将字符串定义为函数

发表于 : 2010-12-04 22:18
lilydjwg
自由建客 写了: 这些天我整天读文档都快疯了!说老实话,这问题我开始想的是高阶函数。
读了几个月了?