Vimscript 字符串函數(shù)

2018-02-24 16:02 更新

Vim有許多內置(built-in)函數(shù)來操作字符串。本章中我們將介紹一些最為重要的字符串函數(shù)。

長度

第一個介紹的函數(shù)是strlen。執(zhí)行下面的命令:

:echom strlen("foo")

Vim顯示3,也即"foo"的長度?,F(xiàn)在嘗試下面的命令:

:echom len("foo")

Vim再一次顯示3。對于字符串,lenstrlen有同樣的效果。在本書稍后的章節(jié)我們會回過頭來探討len。

切割

執(zhí)行下面的命令(注意是echo而不是echom):

:echo split("one two three")

Vim顯示['one','two','three']。split函數(shù)把字符串切割成列表。我們將簡要介紹列表, 但現(xiàn)在不要糾結于此。

你也可以指定一個分隔符來代替"空白"。

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

Vim再一次顯示['one','two','three'],因為split的第二個參數(shù)是",",表示以","切割。

連接

你不僅可以切割字符串,還可以連接它們。執(zhí)行下面命令:

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

Vim將顯示foo...bar。暫時不要在意列表語法。

splitjoin可以合作無間。執(zhí)行下面的命令:

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

Vim顯示foo;bar。首先我們把"foo bar"切割成列表,接著用分號作為分隔符把列表連接成字符串。

大小寫轉換

Vim有兩個函數(shù)來轉換字符串大小寫。執(zhí)行下面的命令:

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

Vim顯示fooFOO。這很淺顯易懂吧。

在許多語言(如Python)有一個慣例是在進行比較之前把字符串強制轉換成小寫來實現(xiàn)大小寫無關的比較。 在Vimscript里不需要這么做,因為有大小寫不敏感的比較運算符。如果你回憶不起來,重新讀關于比較的那一章。 (譯注:如果你回憶不起來,那是第22章)

你可以自由選擇使用tolower==#以及==?來實現(xiàn)大小寫敏感的比較。Vimscript社區(qū)對此還沒有明顯的偏好。 選定一個并在你所有的腳本中保持一致。

練習

執(zhí)行:echo split('1 2'):echo split('1,,,2',',')。它們表現(xiàn)一致嗎?

閱讀:help splt()。

閱讀:help join()

閱讀:help functions并瀏覽有關String的內置函數(shù)。使用/命令來輔助你(記住,Vim的幫助文件可以以一般文件的方式瀏覽)。 這里有著_許多_函數(shù),所以不要糾結于每一個函數(shù)的文檔。給自己留下印象,以便于將來的不時之用, 這就夠了。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號