字符串函数

Vim 有很多内置函数来处理字符串。在本章节里,我们会学一些最重要的。

长度

我们要学习的第一个函数是 strlen。运行以下命令:

:echom strlen("foo")

Vim 显示3,这就是"foo"的长度。现在试试以下命令:

:echom len("foo")

Vim 再一次显示3。对字符串使用lenstrlen是一样的效果。 我们会在本书后面的内容中重新讲到len

分割

运行以下命令(注意是echo而不是echom):

:echo split("one two three")

Vim 显示 ['one', 'two', 'three']split函数把一个字符串分割为了一个列表。 我们会简单地讲到些列表,但现在并不用过于担心。

你也可以让 Vim 用一个其他分割符而不是“空白”来进行分割。运行以下命令:

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

Vim 会再次显示 ['one', 'two', 'three'],因为split的第二个参数告诉它使用逗号来分割字符串而不是空白。

连接

你不仅可以分割字符串,还可以连接字符串。运行以下命令:

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

Vim 会显示 foo...bar。目前不用担心列表的语法。

splitjoin 可以配合着产生很棒的效果。运行以下命令:

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

Vim 显示 foo;bar。首先我们把字符串 "foo bar" 分割为一个列表,然后用分号作为分隔符把列表连接在一起。

大小写

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

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

Vim 显示 fooFOO。这应该很容易理解。

在很多语言中(比如Python)为了执行一个大小写不敏感比较, 一个通俗的做法就是在比较字符串之前先强制转换为小写字母。 在 Vimscript 这不是必须的,因为我们有大小写不敏感比较操作符。 如果你不记得了那么久去重新阅读比较的那一章节。

到底是用 tolower==#,还是 ==? 来执行大小写不敏感比较则完全取决于你。 在 Vimscript 中这些并没有哪个性能更好。所以选择一个然后在你的脚本里一直坚持下去。

练习

运行 :echo split('1 2'):echo split('1,,,2', ',')。它们的行为是一样的么?

阅读 :help split()

阅读 :help join()

阅读 :help functions 并且略读那些提到了“String”的内置函数。 使用 / 命令以更轻松的查找(记住,Vim 的帮助文件也可以像其他任何类型的文件一样浏览)。 这会有很多的函数,所以不用觉得你需要阅读每一个的文档。 而只是尝试留下个映象,知道将来如果需要哪些是可以使用的。

原文地址:http://learnvimscriptthehardway.stevelosh.com/chapters/27.html