当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : index() 总是返回 -1
帖子发表于 : 2011-03-13 22:45 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
代码:
let s:path="/usr/share/vim/gvimrc"
let s:sstr=""
redir => s:sstr
silent script
redir END
let s:slist=split(s:sstr, "\n")
for item in s:slist
   let item=substitute(item, '.\+:\s*', '', '')
   " 加上检查一下,结果是对的,存在 /usr/share/vim/gvimrc
   echo item   
endfor

" 问题在于永远是 -1
let s:i=index(s:slist, s:path)
if s:i!=-1
   echo "####" s:i+1
else
   echo "****" s:i
endif

最后结果总是
**** -1
附件:
1.png
1.png [ 39.63 KiB | 被浏览 450 次 ]



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


页首
 用户资料  
 
2 楼 
 文章标题 : Re: index() 总是返回 -1
帖子发表于 : 2011-03-13 23:47 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
明白了,都是 for 惹得祸!item 是右值而非左值。


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


页首
 用户资料  
 
3 楼 
 文章标题 : Re: index() 总是返回 -1
帖子发表于 : 2011-03-14 12:37 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
自由建客 写道:
明白了,都是 for 惹得祸!item 是右值而非左值。


什么右值左值的。。。VimScript 又不是 C。这个 for in 嘛,从来都是这个样子的,想改变那个 list,用 map 吧。


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

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


页首
 用户资料  
 
4 楼 
 文章标题 : Re: index() 总是返回 -1
帖子发表于 : 2011-03-14 12:42 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
lilydjwg 写道:
自由建客 写道:
明白了,都是 for 惹得祸!item 是右值而非左值。


什么右值左值的。。。VimScript 又不是 C。这个 for in 嘛,从来都是这个样子的,想改变那个 list,用 map 吧。

在 while 中用 let s:slist[s:i]= 就可以改了,下标是左值,而 for 中的 item 引用是右值。


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


页首
 用户资料  
 
5 楼 
 文章标题 : Re: index() 总是返回 -1
帖子发表于 : 2011-03-14 12:52 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
自由建客 写道:
在 while 中用 let s:slist[s:i]= 就可以改了,下标是左值,而 for 中的 item 引用是右值。

用 map 不好吗,一行搞定,又快又好。


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

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


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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