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

在emacs下一直没有找到合适的工程项目类插件,因而本身写了一个。主要的痛点以下: css

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

插件的主要功能: linux

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

插件安装方法: shell

  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)
相关文章
相关标签/搜索