Vimscript 字符串函數(shù)

2018-02-24 16:02 更新

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

長(zhǎng)度

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

:echom strlen("foo")

Vim顯示3,也即"foo"的長(zhǎng)度。現(xiàn)在嘗試下面的命令:

:echom len("foo")

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

切割

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

:echo split("one two three")

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

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

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

Vim再一次顯示['one','two','three'],因?yàn)?code>split的第二個(gè)參數(shù)是",",表示以","切割。

連接

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

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

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

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

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

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

大小寫轉(zhuǎn)換

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

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

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

在許多語言(如Python)有一個(gè)慣例是在進(jìn)行比較之前把字符串強(qiáng)制轉(zhuǎn)換成小寫來實(shí)現(xiàn)大小寫無關(guān)的比較。 在Vimscript里不需要這么做,因?yàn)橛写笮懖幻舾械谋容^運(yùn)算符。如果你回憶不起來,重新讀關(guān)于比較的那一章。 (譯注:如果你回憶不起來,那是第22章)

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

練習(xí)

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

閱讀:help splt()

閱讀:help join()。

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)