安装了Swiper, Ivy 和 Counsel 包 在打开ivy mode处使用 (ivy-mode 1) 开启ivy模式 在windows系统下使用正常 但是在Ubuntu下使用出现error提示 Symbol’s function definition is void: cl-struct-define 大家有遇到过吗?
解决方法见四楼,将elpa目录删除重新,加载package就可以了
安装了Swiper, Ivy 和 Counsel 包 在打开ivy mode处使用 (ivy-mode 1) 开启ivy模式 在windows系统下使用正常 但是在Ubuntu下使用出现error提示 Symbol’s function definition is void: cl-struct-define 大家有遇到过吗?
解决方法见四楼,将elpa目录删除重新,加载package就可以了
你要 require 一下 cl 这个扩展?
(require 'cl)
(require 'cl) 添加过了 完整的package代码如下:
(when (>= emacs-major-version 24)
(require 'package)
(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
)
(require 'cl)
(defvar wally/packages '(
company
monokai-theme
hungry-delete
swiper
counsel
window-numbering
))
(defun wally/packages-installed-p ()
(loop for pkg in wally/packages
when (not (package-installed-p pkg)) do (return nil)
finally (return t)))
(unless (wally/packages-installed-p)
(message "%s" "Refreshing package database...")
(package-refresh-contents)
(dolist (pkg wally/packages)
(when (not (package-installed-p pkg))
(package-install pkg))))
;; Simple Packages Settings
;; Monokai Theme
(load-theme 'monokai 1)
;; Enable Hungry Delete
(require 'hungry-delete)
(global-hungry-delete-mode)
;; Enable Global Company Completion
(global-company-mode t)
;; Swiper Config
(ivy-mode 1)
(setq ivy-use-virtual-buffers t)
(global-set-key "\C-s" 'swiper)
(global-set-key (kbd "C-c C-r") 'ivy-resume)
(global-set-key (kbd "<f6>") 'ivy-resume)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
;; Window-Numbering Config
(require 'window-numbering)
(window-numbering-mode 1)
(setq window-numbering-assign-func
(lambda ()(when (equal (buffer-name) "*Calculator*") 9)))
我用你教程里给出的 find function 查找 (cl-struct-define) 函数在windows下正常 但是linux下似乎找不到,我在想有没有可能是因为 emacs24 里没有?
应该不会,可能你安装的 emacs 版本有问题。。建议使用 24.5+ 的版本
Swiper 依赖 Emacs 24.1+,所以要确保你的 Emacs 版本符合要求,你的 Ubuntu 下的 Emacs 版本是多少?
另外需要注意的是:不同版本的 Emacs 不能公用各自 *.elc
,换言之,不能在不同 Emacs 版本间同步 ~/.emacs.d/elpa
(默认)文件夹,因为,旧的 Emacs 不能理解新的 Emacs 生成的 *.elc
,反之可以。你有在 Windows 和 Ubuntu 之间同步~/.emacs.d/elpa
(默认)吗?要是有的话,你的 Windows 下的 Emacs 版本是多少?
解决了,确实是楼上说的问题,把elpa目录删除后让emacs重新安装包就可以了 非常感谢!
回复楼上:我win下用的是emacs25版本,ubuntu下是emacs24.5