Vim是一个文本编辑器,而文本编辑器(经常)处理文本文件。文本文件储存在文件系统中, 而我们使用路径来描述文件。Vimscript有一些内置的方法会在你需要处理路径时帮上大忙。
有时外部脚本也需要获取特定文件的绝对路径名。执行下面的命令:
:echom expand("%")
:echom expand("%:p")
:echom fnamemodify("foo.txt", ":p")
第一个命令显示我们正在编辑的文件的相对路径。%
表示"当前文件"。 Vim也支持其他一些字符串作为expand()
的参数。
第二个命令显示当前文件的完整的绝对路径名。字符串中的:p
告诉Vim你需要绝对路径。 这里也有许多别的修饰符可以用到。
第三个命令显示了当前文件夹下的文件foo.txt
的绝对路径,无论文件是否存在。(译注:试一下看看文件不存在的情况?) fnamemodify()
是一个比expand()
灵活多了的Vim函数, 你可以指定任意文件名作为fnamemodify()
的参数,而不仅仅是expand()
所需要的那种特殊字符串。
你可能想要得到一个特定文件夹下的文件列表。执行下面的命令:
:echo globpath(".", "*")
Vim将输出当前目录下所有的文件和文件夹。globpath()
函数返回一个字符串, 其中每一项都用换行符隔开。为了得到一个列表,你需要自己去split()
。执行这个命令:
:echo split(globpath(".", "*"), "n")
这次Vim显示一个包括各个文件路径的Vimscript列表。 如果你的文件名里包括了换行符,那就只能由你自己想办法了。
globpath()
的通配符(wildcards)的工作方式就像你所想的一样。执行下面的命令:
:echo split(globpath(".", "*.txt"), "n")
Vim显示一个当前文件夹下的所有.txt
文件组成的列表。
你可以用**
递归地列出文件。执行这个命令:
:echo split(globpath(".", "**"), "n")
Vim将列出当前文件夹下的所有文件及文件夹。
globpath()
_非常地_强大。在你完成本章练习后,你将学到更多内容。
阅读:help expand()
.
阅读:help fnamemodify()
.
阅读:help filename-modifiers
.
阅读:help simplify()
.
阅读:help resolve()
.
阅读:help globpath()
.
阅读:help wildcards
.
LeftJoin/RightJoin/InnerJoinLeftJoin左关联查询;RightJoin右关联查询;InnerJoin内关联查询;其实我们并不推荐使用Jo...
XSL-FO azimuth 属性 XSL-FO 参考手册定义和用法 azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)。 对文档...
XML DOM length 属性 Comment 对象定义和用法 length 属性返回注释节点中文本的长度(以字符计)。 语法commentNode.length 实例...
JavaScript RegExp + 量词 JavaSript RegExp 对象定义和用法n+ 量词匹配包含至少一个 n 的任何字符串。语法new RegExp("n+")或者...
Video controls 属性 Video 对象实例启用视频控件:document.getElementById(myVideo).controls=true;定义和用法controls 属性设...
Textarea form 属性 Textarea 对象定义和用法form 属性返回对包含该 text area 的 表单的引用。若成功,则该属性返回一个 form ...
HTML canvas miterLimit 属性 Canvas 对象实例以最大斜接长度 5 绘制线条:YourbrowserdoesnotsupporttheHTML5canvastag.JavaScr...
HTML 音频/视频 DOM progress 事件 HTML 音频/视频 DOM 参考手册实例提示视频正在下载中:myVid=document.getElementById("video...