vimscript使用系统命令结果上方的目录扩充rtp

vimscript使用系统命令结果上方的目录扩充rtp,vim,Vim,我正试图修改我的vimrc以包含一个目录 let g:mydir = system('which someExecutable') execute "set rtp+=" . g:mydir 问题是,某个可执行文件返回如下内容 /aDir/a/b。 我需要将g:mydir设置为/aDir/,因此在b上面有两个dir 在vimscript中有没有一种简单的方法可以做到这一点?您正在寻找fnamemodifypath,:h 如果您的vim版本足够新,您甚至可以使用exepath'someExecu

我正试图修改我的vimrc以包含一个目录

let g:mydir = system('which someExecutable')
execute "set rtp+=" . g:mydir
问题是,某个可执行文件返回如下内容 /aDir/a/b。 我需要将g:mydir设置为/aDir/,因此在b上面有两个dir

在vimscript中有没有一种简单的方法可以做到这一点?

您正在寻找fnamemodifypath,:h

如果您的vim版本足够新,您甚至可以使用exepath'someExecutable'而不是系统'whichsomeexecutable'。其中:

fnamemodify(exepath('someExecutable'), ":h")

PS:如果使用exe set rtp+=..请不要忘记转义必须转义的内容,谢谢!工作起来很有魅力!