自创小插件让emacs支持工程项目

在emacs下一直没有找到合适的工程项目类插件,于是自己写了一个。主要的痛点如下:

  1. 配置clang补全的时候需要指定搜索头文件的路径,没办法在.emacs文件里把所有的路径都加上,并且每次新创建一个工程项目的时候就要修改一次emacs配置文件实在是太痛苦了
  2. 由于开发机器不是linux,所以不能在本地编译,需要本地编辑完成后上传到开发机上编译(不想用tramp,因为不知到怎么在远程编辑的时候配置补全,估计就算折腾成功后也会很慢;没法mount远端目录到本地,因为网速太慢;不想在远程shell里面使用emacs,那个神奇的平台没有编译好的emacs包)

插件的主要功能:

  1. C-x p 打开一个项目,项目的定义文件存放在一个特定目录下,用lisp来描述加载这个项目的时候需要执行的初始化操作。
  2. 提供函数 proj-save-rsync 用来保存当前所有的 buffer 并调用一个脚本讲本地的源码上传的远程开发机器。

插件安装方法:

  1. 复制下面的代码到 .emacs 中:
    (defun proj-save-rsync ( ) 
      "Save buffers and do a command."
      (save-some-buffers)
      (shell-command proj-rsync-script )
      (interactive) 
      )
    
    (defun proj-load (arg)
      (interactive
       (list
        (completing-read "Choose one project: " (directory-files "~/.emacs.d/projects" nil "\\.el$") )))
      (load (concat "~/.emacs.d/projects/" arg))
      ;(insert arg)
      )
    
    (global-set-key (kbd "C-x p") 'proj-load)
    (global-set-key [f8] 'proj-save-rsync)
  2. 创建目录
    mkdir ~/.emacs.d/projects
  3. 创建一个工程
    创建一个工程其实就是在 ~/.emacs.d/projects 里面创建一个 projectname.el 文件,里面的内容爱写啥就写啥,使用C-x p打开这个项目的时候会执行这个projectname.el。下面是我的一个项目文件:
    (setq proj-root "/path/to/the/source/root")    ;配置项目root path 
    (setq proj-rsync-script "/rsync/script.exp")   ;设置上传代码的脚本 
    (proj-ac-config proj-root)                     ;自定义的一个函数,设置clang搜索头文件时候的路径 
    (find-file proj-root)                          ;打开project的root path (cscope-set-initial-directory proj-root)       ;初始化cscope 
    (cscope-index-files proj-root)

转载于:https://my.oschina.net/u/575122/blog/151835

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值