2017-02-18 37 views
0

我希望,当我一个目录下编辑一些源文件,记者会触发cmake并让身材,象下面这样:VIM用户定义的函数映射不起作用

command -bang -nargs=? Umake call Myfunction(<bang>0) 
function! Myfunction(forced) 
    lcd %:p:h 
    call system('cmake && make') 
endfunction 
nmap <F5> :Umake<cr> 

这段代码被复制从互联网,做了一些修改,不太确定,如果它完全没问题。重新进入vim后,按下,左下角的命令窗口显示“:Su”,什么也没有发生。

(1)为什么没有发生,Myfunction中的任何语法问题? (2)命令行是否是必需的?这里0的含义是什么?

谢谢。

+0

' 0'意味着要么'!0'这是'1'或'0',它检查爆炸的存在(即'Umake'或'Umake!') –

回答

1

你不想system()

设置,而不是:let &makeprg = 'cd "compilation/dir" && make $*'编译。然后:make target -j 12

再次,构建工具,包装插件已经处理了乱源代码树编译(有多个编译目录),目标探测,后台编译...