我正在编辑我的.vimrc文件以将vim与游侠集成,我有这段代码:
fun! RangerChooser()
exec "silent !ranger --choosefile=/tmp/chosenfile " . expand("%:p:h")
if filereadable('/tmp/chosenfile')
exec 'tabnew ' . system("cat /tmp/chosenfile")
call system('rm /tmp/chosenfile')
endif
redraw!
endfun
问题是,当我尝试打开一个文件,其路径中包含一个名称中包含空格的文件夹时,它会失败,因为它会阻塞路径。我认为这是因为游侠在空格之前不使用反斜杠,因此可以理解。这发生在第四行的系统调用中。我添加了一些命令来插入反斜杠,但是我对“'”和qoutes有一些问题。有人有解决方案吗?非常感谢!
答案 0 :(得分:1)
shellescape()
为您完成所有这些以及更多内容:
exec "silent !ranger --choosefile=/tmp/chosenfile " . shellescape(expand("%:p:h"))