如何将参数列表传递给start-process的第4个argrument(PROGRAMS-ARGS):
(开始进程名称BUFFER PROGRAM& rest PROGRAM-ARGS)
例如:
(start-process“program-name”nil“program-name”“ - p1”“ - p2”“ - p3”“program-name”)
我想通过收集列表中的参数并将list变量传递给functions参数来做同样的事情,但它不起作用:
(setq program-args(list“-p1”“ - p2”“ - p3”))
(start-process“program-name”nil“program-name”program-args“program-name”)
为我可怜的英语而烦恼:(
答案 0 :(得分:4)
在这种情况下你应该使用apply
:
使用参数应用调用函数,就像funcall但有一个 区别:最后一个参数是一个对象列表,它们是 传递给函数作为单独的参数,而不是单个列表。
即,在您的情况下,正确的代码是:
(apply 'start-process
(append (list "program-name" nil "program-name")
program-args
(list "program-name")))