5

我对emacs相当陌生。事实上,我正在学习编辑器并尝试设置一些可以复制“转到项目内的文件”功能的东西,这些功能来自 Code::Blocks 或 notepad++ 的某些插件。

'projectile' 满足了这个需求,我通过 MELPA 安装了它。软件包安装正确,因为我可以启动它M-x projectile-global-mode并且C-c p可以识别命令。

但是,如果我将它放入我的.emacs文件中,Emacs 会以错误开头:

Symbol's function definition is void: projectile-global-mode

我的.emacs文件内容如下:

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )
(global-whitespace-mode 1)
(global-linum-mode 1)

(require 'package)
(add-to-list 'package-archives
  '("melpa" . "http://melpa.milkbox.net/packages/") t)

(projectile-global-mode 1)

当我尝试(require 'projectile)第一次时,我只会遇到另一个错误:

 'File error: Cannot open load file, projectile'

我正在使用 Emacs 24.3.1。

如何正确地将其设置为自动启动?

4

3 回答 3

7

默认情况下,Emacs在评估init.el初始化包。init因此,在标准设置中,包在评估时还不可用。

(add-hook 'after-init-hook #'projectile-global-mode)仅在初始化包后使用Projectile 启用,或init.el使用以下代码在开头显式初始化包:

(require 'package)
(setq package-enable-at-startup nil) ; To avoid initializing twice
(package-initialize)
于 2014-07-07T14:07:54.990 回答
0

你可以加

'(initial-major-mode (quote projectile-global-mode))

到 custom-set-variable 部分中的 .emacs(或 init.el 或任何您的文件)文件。

或者,在较新版本的 emacs 中,菜单选项 | 自定义 Emacs | 特定选项,您可以键入“initial-major-mode”,这将带您进入 emacs 可以使用该设置自定义自身的界面。只记得申请并保存

于 2014-09-12T19:35:32.810 回答
-1

你必须先加载弹丸,例如使用这个:

(require 'projectile)
(projectile-global-mode)
于 2014-07-07T13:12:25.107 回答