前面学习VimScript数据类型的时候,介绍了Number, Float, String, List, Dictionary五种的基本用法,本节将学习最后一种数据类型:Funcref。当然之前必须要对函数进行介绍。
1 函数
VimScript支持编程语言中通用函数的概念,而且内建了大量的函数供用户使用,如用于查询的serach(),获取行的getline()等等,今后的例子中将会逐渐使用这些函数来完成更有意思的功能。
1.1 函数调用的两种方式
有两种调用VimScript函数的方式。
(1)不关心返回值
call search("Date: ", "W")
使用关键字call 来显式调用函数。
(2)关心返回值
let line = getline(".")
let repl = substitute(line, '\a', "*", "g")
call setline(".", repl)
上例子,getline(".")返回当前光标所在的行文本,substitue()则返回替换后的文本, 这种情况下自动调用函数,无需使用call。
其实函数调用的call与变量赋值的let类似,看起来好像真的是多余的,C和PHP都没有这种用法,也能工作的很好啊,搞不懂VimScript的开发