vim脚本中substitute函数$疑問

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
shmily623
帖子: 64
注册时间: 2009-07-02 19:11
送出感谢: 0
接收感谢: 0

vim脚本中substitute函数$疑問

#1

帖子 shmily623 » 2011-06-10 3:23

在神奇的VIM中有这样一段代码
:%s/^/^I/ 每一行的行首添加一个TAB字符
:$ 到文件的末行
:let end=line(".") 末行的行号 ==〉变量 END,函数line的功能是取得指定行的行号,此处参数"."表示当前行
:1 到文件的首行
"------------------------------------------
:let num=1 1 ==〉计数器
:while num<=end
:let line=getline(".") 取当前行的内容 ==〉变量 LINE
:let line=substitute(line,$,num,"") 在变量 LINE 的前面置入行号
:call setline(".",line) 将变量 LINE 的内容写回当前行
:+ 下移一行
:let num=num+1 计数器加一
:endwhile 循环执行,直到文件结束
为什么substitute(line,$,num,"") 在变量 LINE 的前面置入行号?
不是^代表行首,$代表行尾么? 我用'^'试了是在前面加入行号,但是用'$'试验却是在行尾加入了行号,而$确实在行首加了行号,这是怎么回事?
回复

回到 “办公、图像、机械电子设计等”