我希望当我在一个目录下编辑一些源文件时,按下将触发cmake并进行构建,如下所示:
command -bang -nargs=? Umake call Myfunction(<bang>0)
function! Myfunction(forced)
lcd %:p:h
call system('cmake && make')
endfunction
nmap <F5> :Umake<cr>
此代码段是从互联网上复制而来的,并进行了一些修改,不太确定它是否完全正常。重新输入vim后,按,左下方的命令窗口显示&#34;:Su&#34;什么都没发生。
(1)为什么没有发生任何问题,Myfunction中的语法问题? (2)是&#34;命令-bang&#34;必要?这里0的含义是什么?
感谢。
答案 0 :(得分:1)
您不想使用system()
改为:let &makeprg = 'cd "compilation/dir" && make $*'
。然后是:make target -j 12
。
同样,build-tool-wrappers插件已经处理了源外树编译(具有多个编译目录),目标检测,后台编译......