VIM用户定义的函数映射并不像我预期的那样工作

时间:2017-02-18 03:36:51

标签: function dictionary vim call

我希望当我在一个目录下编辑一些源文件时,按下将触发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的含义是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

您不想使用system()

进行编译

改为:let &makeprg = 'cd "compilation/dir" && make $*'。然后是:make target -j 12

同样,build-tool-wrappers插件已经处理了源外树编译(具有多个编译目录),目标检测,后台编译......