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社区里没有一个强制的约定。随便选择一个你觉得合适的,保持使用它。