安装时自动加上 `-` 在package名字后面,如 `hungry-delete-`

配置是直接复制 emacs-也很美 里的那部分配置。出现如下报错:

这个issue内有个一样的错误,但是我看了回答,发现我不是因为源地址写错导致的。

init.el文件内容:

(when (>= emacs-major-version 24)
    (require 'package)
    (package-initialize)
    (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t))

;; cl - Common Lisp Extension
(require 'cl)

;; Add Packages
(defvar my/packages '(
               ;; --- Auto-completion ---
               company
               ;; --- Better Editor ---
               hungry-delete
               swiper
               counsel
               smartparens
               ;; --- Major Mode ---
               js2-mode
               ;; --- Minor Mode ---
               nodejs-repl
               exec-path-from-shell
               ;; --- Themes ---
               monokai-theme
               ;; solarized-theme
               ) "Default packages")

(setq package-selected-packages my/packages)

(defun my/packages-installed-p ()
    (loop for pkg in my/packages
          when (not (package-installed-p pkg)) do (return nil)
          finally (return t)))

(unless (my/packages-installed-p)
    (message "%s" "Refreshing package database...")
    (package-refresh-contents)
    (dolist (pkg my/packages)
      (when (not (package-installed-p pkg))
        (package-install pkg))))

;; Find Executable Path on OS X
(when (memq window-system '(mac ns))
  (exec-path-from-shell-initialize))

你试着把我的插件的前部代码粘过去试试?或者对比下两者之间区别。

这是我现在用的配置,似乎没有什么问题。

用你的没问题了。。。好奇怪的情况…

1 个赞

这种情况我回去 diff 下他们的区别,通常情况下都是自己打错了 :blush:

https://www.diffchecker.com/

你需要梯子,你的 melpa 应该是跪的,建议用 popkit 当作源,https://github.com/aborn/popkit-elpa

@XCREATES 建议你修改一下 book, 把 popkit 添加到前面的章节中去。

首先楼上说用我的配置没问题,所以我就排除了 Melpa 源的问题。

好的,我会在下一个 PR 中将在第一天插件安装的部分添加 popkit 的使用说明。

重装 Emacs 中。。。。转了半天装了个命令行版本的

我现在全部使用你的配置。出现一个错误 is void: define-advice

这是什么原因?

define-advice 是 Emacs 25 新加入的宏

1 个赞

如果你还没有安装 Emacs 可以在 Mac OS X 安装链接以及 Window 安装链接找到它。本文我们使用的为 Emacs 25.0.x Pretest 版本,一些配置在 Emacs 24 中可能并不适用。

http://book.emacs-china.org/

哦。好的. 这个我没注意到…

1 个赞

提示信息说:hungry-delete 这个包找不到。可能原因有很多:archives 过期了、你的电脑跟 melpa 之间的连接有问题、melpa 自己的服务器出毛病了(最近确实有这样问题 [1],不确定有没有完全解决好)诸如此类的。

1: https://github.com/melpa/melpa/issues/3833

最后的横杠是用来写版本号的,因为不清楚版本就留空了。

1 个赞

ok. 目前有碰过一个melpa自身的包管理问题。有一些版本在stable中是没有的,切换到stable时出现错误。

建议对25新特性加个版本判断: 例如init-helper.eldefine-advice

(when (>= emacs-major-version 25)
(define-advice show-paren-function (:around (fn) fix-show-paren-function)
  "Highlight enclosing parens."
  (cond ((looking-at-p "\\s(") (funcall fn))
	(t (save-excursion
             (ignore-errors (backward-up-list))
             (funcall fn)))))
)

2 个赞

我不是特别清楚这个是不是唯一的 emacs 25 配置,还有没有其他的呢?可能还需要做 GUI 和命令行的判断比如 scroll-bar 命令行 Emacs 就没有。刚刚也遇到这个问题了。

目前我的这边没报错了。 版本是emacs-plus 24.5

1 个赞

理论上有些配置也需要兼容命令行,但是作为初学者,一开始没有必要整,太麻烦。

我大概在第 9 天的视频中会把之前我们学习的配置转到 prelude starter kit 上面去。

没有必要自己写全部的配置。

1 个赞

可以先做个判断,比如这样

(when (fboundp 'tool-bar-mode)
  (tool-bar-mode -1))

(when (fboundp 'scroll-bar-mode)
  (scroll-bar-mode -1))

或者

(when (display-graphic-p)
  (tool-bar-mode -1)
  (scroll-bar-mode -1))
1 个赞