vim 的一个奇特现象

Vim、Emacs配置和使用
回复
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

vim 的一个奇特现象

#1

帖子 自由建客 » 2012-03-24 21:54

代码: 全选

" test.vim
let s:Var1="var1"
let s:Var2="var2"
fun s:LstVar()
	let s:
endfun

代码: 全选

:" 在交互式界面
:source test.vim
:script   " 看刚才 test.vim 的 sid,比如我看到的是 31
:call <SNR>31_LstVar()   " 正常!能打印 Var1 和 Var2
:" 企图注入一个函数
:fun <SNR>31_LstVar2()
:	let s:
:endfun
:call <SNR>31_LstVar2()   " 不正常!提示未找到变量 s:
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: vim 的一个奇特现象

#2

帖子 fanhe » 2012-03-26 9:06

研究这种事情本来就是浪费时间
文档没说过能这样用
想知道为什么就去看源码,但是即使让你知道了为什么,也没什么意义

别折腾了
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: vim 的一个奇特现象

#3

帖子 自由建客 » 2012-03-26 9:29

如果注入成功,我就能自动删除脚本域变量,完美地卸载脚本!现在只好直接复制到每个脚本中,让脚本自己负责清除变量了。
回复