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

Vim、Emacs配置和使用
回复
头像
自由建客
论坛版主
帖子: 13436
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

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

#1

帖子 自由建客 » 2010-12-04 20:55

eval() 可把一表达式的字符串给执行了,但仅限于表达式,返回其值。现有一字符串,欲将其定义为函数,有什么办法?
简单说,比如有

代码: 全选

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

代码: 全选

fun myfun()
  wincmd x
  return 2
endfun
这样的硬编码。
头像
lilydjwg
论坛版主
帖子: 4165
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

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

#2

帖子 lilydjwg » 2010-12-04 21:26

代码: 全选

:help :exec
麻烦你先把文档通读一遍再来问问题。
头像
自由建客
论坛版主
帖子: 13436
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

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

#3

帖子 自由建客 » 2010-12-04 21:41

我知道 exe ,只是一下没想到这么个用法。这些天烦死了,我是不是该休息一下,不搞 vim 先!

代码: 全选

let s:str1=	"echo \"hello************\"\nreturn {}"
exe "fun s:MyFun()\n".s:str1."\nendfun"
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

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

#4

帖子 xhy » 2010-12-04 21:46

遇到无视文档派,2楼要抓狂了 :em04
目前负债150多万
头像
自由建客
论坛版主
帖子: 13436
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

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

#5

帖子 自由建客 » 2010-12-04 21:56

xhy 写了:遇到无视文档派,2楼要抓狂了 :em04
这些天我整天读文档都快疯了!说老实话,这问题我开始想的是高阶函数。
头像
lilydjwg
论坛版主
帖子: 4165
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

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

#6

帖子 lilydjwg » 2010-12-04 22:18

自由建客 写了: 这些天我整天读文档都快疯了!说老实话,这问题我开始想的是高阶函数。
读了几个月了?
回复

回到 “Vim和Emacs”