Emacs 如何配置一键编译运行 C++ 文件?

我想设置 F5 快捷键,启用 g++ 一键编译运行当前文件。无奈网上并没有找到想要的东西。该怎么做呢?Ubuntu系统。

Emacs 很好定制,把你手动的操作一一对应成 Lisp 就差不多了,比如:

(defun your-g++-compile-and-run ()
  (interactive)
  (compile (format "g++ %s && ./a.out" (buffer-file-name))))

(define-key c++-mode-map (kbd "<f5>") #'your-g++-compile-and-run)

也有现成的第三方插件,网上应该很容易搜索到,用 “Emacs” “auto” “run” “compile” 这样的关键词,不过这是你该干事,我不会帮你搜。

2 个赞

我在重启emacs后遇到了这样的问题,Ubuntu系统

Symbol's value as variable is void: c++-mode-map

18年的帖子咋突然冒出来了。。。

盲猜你是不是配置的位置太早了,c++-mode还没有被Load。放hook里试试?

不用猜,报错提示清清楚楚说了「c++mode-map 没定义」,对症下药就 OK 了,with-eval-after-load 或者 add-hook 都行。

写个小函数就可以了,可参考本人写的sl-compile-project-or-file

1 个赞

quick-run