如何给quickrun添加两套不同的编译参数

我是一个刚刚开始使用emacs的vimmer
我通常使用quickrun-shell来编译允许我的c++代码
我根据文档修改了一下默认的编译参数
然后我现在想定义另一套编译参数, 然后绑定到其他快捷键, 调用用这个参数运行quickrun-shell

不知道如何完成(当然我这个思路可能有偏点vim, 在vim我只需要定义两次一键执行代码的函数, 然后修改其中一个的编译参数然后绑定到不同快捷键就行, 但是vim的一键执行代码的函数比较朴素也就是开个term输入编译&&执行命令就行, 把这个思路用在quickrun似乎有点行不通) 但是最终能达到标题上的有两套不同的编译参数共存的效果就行啦.

自己写个函数?

没用过 quickrun-shell,但 emacs 不是自带 compile 嘛(M-x compile)这个会运行 compile-command,然后你可以在运行前设置一下 compile-command,就行

主要是我现在已经习惯于一些quickrun的feature了, 不过谢谢你的提议, 如果最终没办法解决的话, 我就只能自己写啦

compile可以用来灵活处理一些复杂的命令。如果只是运行一些简单的代码的话。 可以运行 Interactive Shell,如https://elpy.readthedocs.io/en/latest/ide.html#interactive-python 可以要求shell运行一段代码。javacript同类插件有好几个, indium, node-repl等等。

如果是大量使用,就添加到 quickrun--language-alist:

(setq quickrun--language-alist
      (cons 
       '("c/gcc(2)" . ((:command . "gcc")
                       (:exec    . ("%c -x c %o -o %e %s" "%e %a"))
                       (:compile-only . "%c -Wall -Werror %o -o %e %s")
                       (:remove . ("%e"))
                       (:description . "Compile C file with gcc and execute")))
       quickrun--language-alist))

特定文件使用就用 buffer local variable:

// Local Variables:
// quickrun-option-cmd-alist: ((:command . "gcc")
//                             (:exec    . ("%c -x c %o -o %e %s" "%e %a"))
//                             (:compile-only . "%c -Wall -Werror %o -o %e %s")
//                             (:remove . ("%e"))
//                             (:description . "Compile C file with gcc and execute"))
// End:

如果是整个项目就在 .dir-locals.el 里设置 quickrun-option-cmd-alist

1 个赞