我是一个新的vim用户,所以我想修改vim以满足我的需求。
假设我有项目/ main.cpp和project / build。在我做“make -j5 install”的项目/构建内部,我的项目正在构建并正确安装。但是,当我试图从vim内部做到这一点时,它不起作用。这是我使用的代码......
map <F5> :call BuildGitRepo()<cr>
function! BuildGitRepo()
:cd %:p:h
let currentFileDir = :pw
:cd currentFileDir
:cd "build"
:!make -j5 install
endfunction
答案 0 :(得分:0)
vimrc文件中的Vim脚本与Vim窗口的功能略有不同。以:
开头的命令在vim脚本中变为本机,这意味着您不需要冒号。此外,使用局部变量有点不同 - 您需要使用exec。
最后,您无法在没有缓冲区重定向的情况下捕获:
命令的输出,但您可以使用getcwd()
函数来获取当前的工作目录。但看起来您已经cd
两次访问当前文件的目录,所以我做得更简单一些。
这是一个应该在vimrc文件中运行的函数版本:
map <F5> :call BuildGitRepo()<cr>
function! BuildGitRepo()
exec "cd " . expand("%:p:h") ."/build"
!make -j5 install
endfunction