这是代码的算法:
for every *file* in a directory
nnoremap ,*file* <C-o>:read $HOME/*file*
end
问题是,我不知道如何为目录中的每个文件编码&#34;。
PS:我是vim的新手,我不知道它是否可能
答案 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'