VIM 用户定义的函数映射不符合我的预期
VIM user defined function mapping doesn't work as I expected
我希望当我编辑某个目录下的一些源文件时,按下将触发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后,按 ,左下命令windows显示“:Su”,没有任何反应。
(1) 为什么没有任何反应,Myfunction 中的任何语法问题?
(2) "command -bang" 行是必须的吗?这里的0是什么意思?
谢谢。
你不想用 system()
编译
改为设置 :let &makeprg = 'cd "compilation/dir" && make $*'
。然后:make target -j 12
.
同样,build-tool-wrappers 插件已经处理 out-of-source 树编译(具有多个编译目录)、目标检测、后台编译...
我希望当我编辑某个目录下的一些源文件时,按下将触发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后,按 ,左下命令windows显示“:Su”,没有任何反应。
(1) 为什么没有任何反应,Myfunction 中的任何语法问题? (2) "command -bang" 行是必须的吗?这里的0是什么意思?
谢谢。
你不想用 system()
改为设置 :let &makeprg = 'cd "compilation/dir" && make $*'
。然后:make target -j 12
.
同样,build-tool-wrappers 插件已经处理 out-of-source 树编译(具有多个编译目录)、目标检测、后台编译...