Vimscript 路徑

2018-02-24 16:02 更新

Vim是一個文本編輯器,而文本編輯器(經(jīng)常)處理文本文件。文本文件儲存在文件系統(tǒng)中, 而我們使用路徑來描述文件。Vimscript有一些內(nèi)置的方法會在你需要處理路徑時幫上大忙。

絕對路徑

有時外部腳本也需要獲取特定文件的絕對路徑名。執(zhí)行下面的命令:

:echom expand('%')
:echom expand('%:p')
:echom fnamemodify('foo.txt', ':p')

第一個命令顯示我們正在編輯的文件的相對路徑。%表示"當前文件"。 Vim也支持其他一些字符串作為expand()的參數(shù)。

第二個命令顯示當前文件的完整的絕對路徑名。字符串中的:p告訴Vim你需要絕對路徑。 這里也有許多別的修飾符可以用到。

第三個命令顯示了當前文件夾下的文件foo.txt的絕對路徑,無論文件是否存在。(譯注:試一下看看文件不存在的情況?)?fnamemodify()是一個比expand()靈活多了的Vim函數(shù), 你可以指定任意文件名作為fnamemodify()的參數(shù),而不僅僅是expand()所需要的那種特殊字符串。

列出文件

你可能想要得到一個特定文件夾下的文件列表。執(zhí)行下面的命令:

:echo globpath('.', '*')

Vim將輸出當前目錄下所有的文件和文件夾。globpath()函數(shù)返回一個字符串, 其中每一項都用換行符隔開。為了得到一個列表,你需要自己去split()。執(zhí)行這個命令:

:echo split(globpath('.', '*'), '\n')

這次Vim顯示一個包括各個文件路徑的Vimscript列表。 如果你的文件名里包括了換行符,那就只能由你自己想辦法了。

globpath()的通配符(wildcards)的工作方式就像你所想的一樣。執(zhí)行下面的命令:

:echo split(globpath('.', '*.txt'), '\n')

Vim顯示一個當前文件夾下的所有.txt文件組成的列表。

你可以用**遞歸地列出文件。執(zhí)行這個命令:

:echo split(globpath('.', '**'), '\n')

Vim將列出當前文件夾下的所有文件及文件夾。

globpath()_非常地_強大。在你完成本章練習后,你將學到更多內(nèi)容。

練習

閱讀:help expand().

閱讀:help fnamemodify().

閱讀:help filename-modifiers.

閱讀:help simplify().

閱讀:help resolve().

閱讀:help globpath().

閱讀:help wildcards.

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號