使用vim编译c ++项目

时间:2012-11-19 20:39:47

标签: vim

我是一个新的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

1 个答案:

答案 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