用emacs代替dev-c++。几个define轻松实现单文件编译

掌握emacs之后,几乎没再怎么使用过其它的工具来编写代码了。。。

最近打算用wxWidgets开发一个软件,并打算只用gcc-mingw来开发,
要在以前,区区一定直接下载一个wxWidgets的devpack,然后就开始写代码了。。

考虑到dev-c++弱弱的编译能力,毅然放弃这个想法,改而手工从源代码把wxWidgets
库给make出来。。

在漫长的编译过程中,区区把自己在公司常用的emacs代码重新实现了一篇。


(defvar jr-compile-pre-flag " "
  "jr-compile的前缀参数")
(defvar jr-compile-pos-flag " "
  "jr-compile的后缀参数")
(defun jr-compile-current-file ()
  "编译当前文件,应用常有的模式"
  (interactive)
  (let* ((filename (buffer-file-name (current-buffer)))
     (progname (cond ((string-match ".c$" filename) "gcc")
             ((string-match ".cxx$" filename) "g++")
             ((string-match ".cpp$" filename) "g++")
             ("echo")
             ))
     (proarg " -g -pg -o ")
     (cmdstr  (read-string "请输入编译指令: "
            (concat progname
                proarg
                (file-name-sans-extension (file-name-nondirectory filename))
                jr-compile-pre-flag
                (file-name-nondirectory filename)
                jr-compile-pos-flag)))
     )
    (compile cmdstr)))
(defvar jr-run-pos-flag " "
 "jr-run的后缀参数")
(defun jr-run-current-file (&optional comint)
  "编译当前文件,应用常有的模式"
  (interactive "P")
  (let* ((filename (buffer-file-name (current-buffer)))
     (cmdstr (concat (file-name-sans-extension filename)
             jr-run-pos-flag
             jr-compile-pre-flag)))
    (compilation-start cmdstr (if comint t nil))))
;单文件编译热键
(global-set-key [(f10)] 'jr-run-current-file)
(global-set-key [(f9)] 'jr-compile-current-file)
(global-set-key [(f7)] 'compile)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值