如何用tr或sed命令替换linux中另外两个字符的字符空间?

时间:2014-08-11 03:23:37

标签: regex linux vim sed

我正在编辑我的.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有一些问题。有人有解决方案吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

shellescape()为您完成所有这些以及更多内容:

exec "silent !ranger --choosefile=/tmp/chosenfile " . shellescape(expand("%:p:h"))