Vimscript编程指南

字符串操作函数

Vim有很多内置的字符串操作函数。在这个章节里,我们会讲解一下vim里最常用的几个字符串操作函数。

长度

我们要看的第一个个函数是strlen。运行下面的例子:


     :echom strlen("foo")

Vim会输出“3”,即是字符串“foo”的长度。现在运行下面的命令:


     :echom len("foo")

Vim这次也是输出“3”。用len和strlen对字符串操作的结果是一样的,我们后面会继续讨论len函数。

字符串切割

运行下面的命令(注意这里用的是echo而不是echom):


     :echo split("one two three")

Vim会输出“['one','two','three']”。spilt函数将字符串切割成一个字符串列表。现在不必考虑列表,我们后面会讨论它的。

你可以显式高速vim来用什么字符切割,而不是用默认的空格。运行下面的命令:


     :echo split("one,two,three",",")

这次vim还是会输出“['one','two','three']”,因为第二参数高速vim来用逗号进行切分。

连接

你不仅仅可以切割字符串,你还可以对它们进行连接的操作。运行下面的命令:


     :echo join(["foo","bar"],"...")

Vim会输出“foo...bar”,暂时不用担心上面的语法。

spilt可以和join可以配对起来达到很不错的效果。运行下面的命令:


     :echo join(split("foo,bar"),";")

Vim会输出“foo;bar”,首先我们把字符串"foo bar"切割成一个列表,然后用分号来连接它们。

大小写转换

Vim有两个函数用来改变字符串的大小写,运行下面的命令:


     :echom tolower("Foo")
     :echom toupper("Foo")

Vim会输出“foo”和“Foo”,这个很容易就能够理解了。

在很多语言里(例如Python),在进行一个大小写不敏感的比较之前,一个通用的规则就是先将字符串转换成小写的形式。但是在vim里不需要进行这样的操作,因为vim有大小写敏感比较符。如果你不记得这个的话,重新阅读以下比较运算那一章。

不过,究竟使用tolower,还是==#还是用==?,这都取决于你自己。对于这个vimscript社区里没有一个强制的约定。随便选择一个你觉得合适的,保持使用它。

练习

  • 阅读:help functions浏览一下vim里内置的提到字符串的函数。用/来进行搜索(注意,vim的帮助文档也可以像其他文件一样进行操作)。这里有很多函数,所以你不需要挨个的去读,只要记住当你需要的时候可以在这里面进行查阅。