W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Vim是一個(gè)文本編輯器,而文本編輯器(經(jīng)常)處理文本文件。文本文件儲(chǔ)存在文件系統(tǒng)中, 而我們使用路徑來描述文件。Vimscript有一些內(nèi)置的方法會(huì)在你需要處理路徑時(shí)幫上大忙。
有時(shí)外部腳本也需要獲取特定文件的絕對(duì)路徑名。執(zhí)行下面的命令:
:echom expand('%')
:echom expand('%:p')
:echom fnamemodify('foo.txt', ':p')
第一個(gè)命令顯示我們正在編輯的文件的相對(duì)路徑。%
表示"當(dāng)前文件"。 Vim也支持其他一些字符串作為expand()
的參數(shù)。
第二個(gè)命令顯示當(dāng)前文件的完整的絕對(duì)路徑名。字符串中的:p
告訴Vim你需要絕對(duì)路徑。 這里也有許多別的修飾符可以用到。
第三個(gè)命令顯示了當(dāng)前文件夾下的文件foo.txt
的絕對(duì)路徑,無論文件是否存在。(譯注:試一下看看文件不存在的情況?)?fnamemodify()
是一個(gè)比expand()
靈活多了的Vim函數(shù), 你可以指定任意文件名作為fnamemodify()
的參數(shù),而不僅僅是expand()
所需要的那種特殊字符串。
你可能想要得到一個(gè)特定文件夾下的文件列表。執(zhí)行下面的命令:
:echo globpath('.', '*')
Vim將輸出當(dāng)前目錄下所有的文件和文件夾。globpath()
函數(shù)返回一個(gè)字符串, 其中每一項(xiàng)都用換行符隔開。為了得到一個(gè)列表,你需要自己去split()
。執(zhí)行這個(gè)命令:
:echo split(globpath('.', '*'), '\n')
這次Vim顯示一個(gè)包括各個(gè)文件路徑的Vimscript列表。 如果你的文件名里包括了換行符,那就只能由你自己想辦法了。
globpath()
的通配符(wildcards)的工作方式就像你所想的一樣。執(zhí)行下面的命令:
:echo split(globpath('.', '*.txt'), '\n')
Vim顯示一個(gè)當(dāng)前文件夾下的所有.txt
文件組成的列表。
你可以用**
遞歸地列出文件。執(zhí)行這個(gè)命令:
:echo split(globpath('.', '**'), '\n')
Vim將列出當(dāng)前文件夾下的所有文件及文件夾。
globpath()
_非常地_強(qiáng)大。在你完成本章練習(xí)后,你將學(xué)到更多內(nèi)容。
閱讀:help expand()
.
閱讀:help fnamemodify()
.
閱讀:help filename-modifiers
.
閱讀:help simplify()
.
閱讀:help resolve()
.
閱讀:help globpath()
.
閱讀:help wildcards
.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: