我正在尝试在 Vim 中编写一个自定义命令,以便更轻松地设置 makeprg 变量以进行源外构建。阅读了命令手册,到目前为止我已经做到了
command! -complete=file -nargs=1 Cmakeprg call set makeprg=cmake --build <args><CR>
但它不起作用。如何在命令中调用“set”?
我正在尝试在 Vim 中编写一个自定义命令,以便更轻松地设置 makeprg 变量以进行源外构建。阅读了命令手册,到目前为止我已经做到了
command! -complete=file -nargs=1 Cmakeprg call set makeprg=cmake --build <args><CR>
但它不起作用。如何在命令中调用“set”?
You :call
functions ,:set
是一个Ex 命令,就像(因为它使用前缀:call
调用)。:
一个复杂的问题:set
是空格必须用 进行转义\
,但是可以通过使用 , 来避免:let
这种情况&option
,并<q-args>
自动引用传递的命令参数。
你也不需要<CR>
;这不是映射。综上所述:
command! -complete=file -nargs=1 Cmakeprg let &makeprg = 'cmake --build ' . <q-args>
在“set”前面加一个冒号,用a<CR>
来执行::set … <CR>
不要使用call
.