grails emacs模式 - “无法打开加载文件”“项目模式”

时间:2013-02-14 05:27:00

标签: grails emacs elisp

我正在尝试使用emacs进行grails开发。试过grails-emacs-mode

我的ubuntu 12.04上有emacsemacs23

prayag@prayag:~$ ls -l /usr/share/emacs[tab][tab]
emacs/   emacs23/ 

正如grails-emacs模式所示,我将grails-mode.elprimary.org个文件复制到我的emacs23/site-list

prayag@prayag:~$ ls -l /usr/share/emacs23/site-lisp/
total 32
-rw-r--r-- 1 root root  3013 Nov 17 00:39 debian-startup.elc
drwxr-xr-x 2 root root  4096 Nov 17 00:39 dictionaries-common
-rw-r--r-- 1 root root 18205 Feb 14 01:11 grails-mode.el
-rw-r--r-- 1 root root     0 Feb 14 01:11 primary.org
-rw-r--r-- 1 root root   106 Sep 22 01:16 subdirs.el

然后,在init.el内创建.emacs.d,因为主目录中不存在.emacs文件。 init.el包含

(require 'grails-mode)
(setq grails-mode t)
(setq project-mode t)
(add-to-list 'auto-mode-alist '("\.gsp$" . nxml-mode)) ; Use whatever mode you want for views.
(project-load-all) ; Loads all saved projects. Recommended, but not required.

现在,打开emacs23并不会在菜单栏中显示任何grails。

我也试过

M-x
load-file .emacs.d/init.el

抛出

Warning (initialization): An error occurred while loading `/home/prayag/.emacs.d/init.el':

File error: Cannot open load file, project-mode

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

grails-emacs

在启动emacs23 --debug-init时,会抛出以下错误。

Debugger entered--Lisp error: (file-error "Cannot open load file" "project-mode")
  require(project-mode)
  eval-buffer(#<buffer  *load*<2>> nil "/usr/share/emacs/23.3/site-lisp/grails-mode.el" nil t)  ; Reading at buffer position 422
  load-with-code-conversion("/usr/share/emacs/23.3/site-lisp/grails-mode.el" "/usr/share/emacs/23.3/site-lisp/grails-mode.el" nil t)
  require(grails-mode)
  eval-buffer(#<buffer  *load*> nil "/home/prayag/.emacs.d/init.el" nil t)  ; Reading at buffer position 23
  load-with-code-conversion("/home/prayag/.emacs.d/init.el" "/home/prayag/.emacs.d/init.el" t t)
  load("/home/prayag/.emacs.d/init" t t)
  #[nil "\205\264

2 个答案:

答案 0 :(得分:1)

我根本不知道圣杯模式。我刚刚点击了你的链接,他们说项目模式是一个依赖:

  

依赖关系:   project-mode是唯一的依赖项。

因此,您还必须安装它。 Link to the Emacs project code。 我希望你这个项目没有额外的依赖...

作为旁注:稍后,尝试安装最后的emacs(v24),它嵌入了一种非常方便的方式来处理包安装和处理包依赖。我刚刚查看它,它存在于另一个(但非常有用)存储库:Marmalade-repo.org。

答案 1 :(得分:1)

grails-mode需要在emacs-grails-mode页面上提到的项目模式。因此,您还需要安装project-mode

还可以从here获取剩余的groovy包(除了grails-mode)。

emacs-grails-mode-ext是对grails模式的适度贡献,允许您直接从emacs运行Grails命令。对于给定项目(项目模式),您可以运行Grails命令,例如 create-domain-class create-service 等。

我还使用here中的 ido-find-file-in-tag-files 函数,我将其绑定到 Cx CMf

emacs-grails-mode的简单指南:

  • 从命令行创建项目或 eshell - &gt; grails create-app yourapp
  • 使用 dired ,转到Grails项目文件夹
  • M-x project-new - &gt;创建一个新项目(项目模式)
  • M-x项目保存 - &gt;保存项目
  • M-x项目加载和选择 - &gt;您的项目名称为参数
  • 如果您使用菜单栏
  • ,还有一个Grails菜单

如果您安装了emacs24,也可以使用my current emacs setup here。我相信它适用于Ubuntu 12.04,但我不确定。我通常在OSX上从源代码构建emacs,或者在Ubuntu中使用emacs-snapshot

希望这有帮助。