当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Vim 如何知道脚本路径 [无果]
帖子发表于 : 2011-04-26 23:09 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
我写了一个脚本,当库用。其中有个函数 Fun(),其操作需要根据调用方脚本路径确定。
例:
代码:
>0< ~$ cat myscript.vim
call Fun()

>0< ~$

如何让 Fun() 知道 myscript.vim 的路径,前提是 myscript.vim 在安装时路径并不一定。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


最后由 自由建客 编辑于 2011-05-10 0:33,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: Vim 如何知道脚本路径
帖子发表于 : 2011-04-27 9:44 
头像

注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9
你不应该这样做的啊,你必须定下来脚本的位置啊

代码:
:scriptname

是列出已载入的脚本,你可以过滤这个输出,但是既然说你都说不准脚本在什么位置,那这个方法无意义啊,除非你确保脚本名称唯一。

另外有个理论上的方法,在脚本内定义唯一的符号,其他脚本搜索这个唯一的符号,索引到这个唯一的符号所定义的文件的路径。
但是貌似我没发现vim有这个接口,可能是我没看到。

===============================================
看错了,你是想知道自己脚本的路径,那个简单啊
代码:
expand('<sfile>')


页首
 用户资料  
 
3 楼 
 文章标题 : Re: Vim 如何知道脚本路径
帖子发表于 : 2011-04-27 12:39 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
不是自己的,是别人的,是让自定义的库函数知道调用方的路径。
一种方法是修改自定义的库函数为 Fun(path) ,然后在 myscript.vim 中这样调用
call Fun(expand('<sfile>'))
但这会让接口复杂化,并非首选。
解释一下,我说 myscript.vim 安装位置不一定的意思是说,不能把路径硬编码进脚本。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: Vim 如何知道脚本路径
帖子发表于 : 2011-04-27 14:24 
头像

注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9
这个貌似没办法的
如果你调用方用的是全局变量,根本没有作用域信息
如果是局部于脚本的变量或者函数,可以获取个sid,然后找到sid对应的脚本位置


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译