当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : vim globpath() 问题 [解决]
帖子发表于 : 2011-05-13 12:37 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
代码:
let lst=split(globpath(&runtimepath, "lib/".a:A."*"), "\n")

其结果中的目录并不以 / 结尾。

遍历一遍列表,判断其是否为目录,是则追加 / 。
好麻烦,还要遍历,费时!
是否有简单方法,能直接在 globpath() 那里搞定?
-----------------------------------------
代码:
fun s:Lib_CmdComp(A, L, P)
   if a:L=~'\m^\s*Lib\s\+path\s\+'
      let lst=split(globpath(&runtimepath, "lib/".a:A."*"), "\n")
      " 遍历一遍自己搞
      let i=0
      while i<len(lst)
         if isdirectory(lst[i])
            let lst[i].='/'
         endif
         let i+=1
      endwhile
      let i=0
      while i<len(lst)
         let lst[i]=matchstr(lst[i], '\m\/\zs'.a:A.'[^\/]*\/\?$')
         let i+=1
      endwhile
   elseif a:L=~'\m^\s*Lib\s\+'
      let lst=["list", "path"]
      let i=0
      while i<len(lst)
         let lst[i]=matchstr(lst[i], '\m^'.a:A.'.*$')
         let i+=1
      endwhile
   endif
   return lst
endfun


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


最后由 自由建客 编辑于 2011-05-23 21:58,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: vim globpath() 问题
帖子发表于 : 2011-05-13 13:27 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
自由建客 写道:
代码:
let lst=split(globpath(&runtimepath, "lib/".a:A."*"), "\n")

其结果中的目录并不以 / 结尾。

遍历一遍列表,判断其是否为目录,是则追加 / 。
好麻烦,还要遍历,费时!
是否有简单方法,能直接在 globpath() 那里搞定?

这样如何?
代码:
let lst=map(split(globpath(&runtimepath, "lib/".a:A."*"), "\n"),
   \ 'isdirectory(v:val) ? v:val."/": v:val')


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
3 楼 
 文章标题 : Re: vim globpath() 问题
帖子发表于 : 2011-05-13 13:36 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
lilydjwg, 还不如我遍历一遍列表快 :em20

代码:
globpath(&runtimepath, "lib/"."{*\/,*}")

有点遗憾,会出现重复项,目录会被列两次,要这样再删除重复项比遍历一遍列表还慢


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


页首
 用户资料  
 
4 楼 
 文章标题 : Re: vim globpath() 问题
帖子发表于 : 2011-05-13 13:48 
头像

注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9
重复项用字典键值方法剔除


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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