使用vim获取目录中的所有文件名

时间:2017-11-14 01:02:50

标签: file vim directory filenames

这是代码的算法:

for every *file* in a directory
  nnoremap ,*file* <C-o>:read $HOME/*file*
end

问题是,我不知道如何为目录中的每个文件编码&#34;。

PS:我是vim的新手,我不知道它是否可能

2 个答案:

答案 0 :(得分:1)

您正在寻找glob()功能。 - &GT; glob($HOME.'/*')

我不确定这是个好主意,但嘿,我该判断谁? :)

答案 1 :(得分:1)

除了glob()(请参阅@LucHermitte的回答),您还需要:execute

execute 'nnoremap ,' . file . ' <C-o>:read $HOME/' . file

(或更优雅地使用printf():)

execute printf('nnoremap ,%s <C-o>:read $HOME/%s', file, file)

描述

Vimscript的评估方式与:命令行中输入的Ex命令完全相同。 ex中没有变量,因此无法指定它们。以交互方式键入命令时,您可能使用<C-R>=插入变量内容:

:sleep <C-R>=timetowait<CR>m<CR>

...但在脚本中,必须使用:execute。必须引用Ex命令的所有文字部分(单引号或双引号),然后与变量连接:

execute 'sleep' timetowait . 'm'