Ошибка режима слайма

Я следовал руководству и информации из Мягкого руководства по Emacs / Swank / Paredit для Clojure

Однако после открытия elpa и установки clojure-mode слайм и paredit. Я перезапустил emacs, а затем попытался использовать слизь M-x, но он постоянно говорит, что нет совпадений. Что я делаю неправильно?

Затем я попытался установить режим clojure из мармелада http://marmalade-repo.org/packages I скомпилированный байтом пакет el, а затем добавленный (add-to-list 'package-archives' ("мармелад". "http://marmalade-repo.org/packages/ ")) в my.emacs. Однако мармеладные ошибки со значением символа в качестве переменной недействительны: пакет-архивы.

Не уверен, что именно я делаю неправильно. Я использую windows7, используя emacs 23.3. Я установил clojure в c: / clojure.

Любая помощь приветствуется.


person sayth    schedule 28.06.2011    source источник


Ответы (5)


В моем init.el есть как (require 'package), так и (package-initialize). Он не очень большой, выглядит вот так:

(require 'package)
;; Add the original Emacs Lisp Package Archive
(add-to-list 'package-archives
             '("elpa" . "http://tromey.com/elpa/"))
;; Add the user-contributed repository
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

Я использую emacs 24 (разрабатываемая сборка) в Windows 7. У меня тоже были проблемы с тем, чтобы emacs 23 работал с пакетами, мне было проще просто обновить.

Кстати, я заметил, что если я устанавливаю переменную среды HOME, emacs ищет там каталог .emacs.d (вместо% USER_PROFILE% \ AppData \ Roaming).

person Nathan Hughes    schedule 28.06.2011

  1. Загрузите package.el (не следуйте инструкциям на сайте ELPA, просто загрузите package.el с сайта Marmalade).
  2. Поместите package.el в каталог .emacs.d (~ / .emacs.d /).
  3. Добавьте следующее в ваш файл .emacs (~ / .emacs):

;;Load path to my packages

(add-to-list 'load-path "~/.emacs.d/")

;;Load ELPA (the package.el you downloaded from marmalade)

(require 'package)

;;Load Marmalade (the code found on marmalade's welcome page)

(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))

Вот и все! Я очень надеюсь, что это поможет.

РЕДАКТИРОВАТЬ: Извините, я забыл упомянуть, что вам нужно добавить (package-initialize) в конце предоставленного мной кода. Если вы не добавите эту строку, пакеты будут установлены, но не загрузятся.

person Amaury Hernández Águila    schedule 04.10.2011

Я думаю, что нужно поставить

(require 'package)

перед "добавить в список"

P.S. и добавить следующий вызов после "добавить в список"

(package-initialize)

эта команда загрузит установленные пакеты и активирует их

P.P.S. '(require' package) 'может и не нужен, но я лично не использую' package.el '

person Alex Ott    schedule 28.06.2011
comment
Спасибо, в настоящее время он все еще не работает. ELPA работает, но мармелад - нет. Что жаль, потому что режим закрытия на мармеладе - 1.9.4, а на ELPA 1.7.1. Одно можно сказать наверняка, указания на marmalade-repo.org определенно расплывчаты и, вероятно, неточны. - person sayth; 29.06.2011
comment
Если вы всегда хотите иметь свежую версию, вы можете посмотреть пакет el-get (github.com/dimitri/ el-get) - person Alex Ott; 29.06.2011
comment
Я только что попробовал на своем свежем Emacs (из BZR), и package.el показывает версию из marmalade-repo - 1.9.2 - person Alex Ott; 29.06.2011

Мне кажется, вам не хватает (require 'package) или (package-initialize). Вы можете проверить мои настройки здесь - я использую как мармелад, так и режим закрытия Windows 7, и это работает как шарм.

person Bozhidar Batsov    schedule 28.06.2011
comment
Я поместил package.el в свой каталог .emacs.d, но он по-прежнему не загружается с (require 'package) и / или (package-initialize) в .emacs. Я попробовал ваш пакет git, создал каталог и клонировал его в C: \ emacs_kit \ emacs-dev-kit created ln -s C: / emacs_kit / emacs-dev-kit ~ / .emacs.d. После запуска emacs, хотя у слизи M-X все еще не было ошибки совпадения. - person sayth; 29.06.2011
comment
В Windows 7 .emacs.d должен находиться в c: /Users/Username/AppData/Roaming/.emacs.d - иначе Emacs его не подберет. - person Bozhidar Batsov; 29.06.2011
comment
о да, я согласен, я пытаюсь настроить emacs для работы с clojure на ПК с XP, ноутбуком Win7 и Vectorlinux. - person sayth; 29.06.2011
comment
~/.emacs.d не находится в пути загрузки по умолчанию, поэтому, даже если вы поместили туда package.el, вы не сможете его потребовать. Попробуйте (add-to-list 'load-path (expand-file-name "~/.emacs.d")) - person sanityinc; 29.06.2011

Не знаю, это та же проблема, с которой я столкнулся, когда пытался использовать swank / slime quicklisp.

Наконец, я обнаружил, что несколько пакетов /contrib/*.el зависят друг от друга, если пакет зависимостей A равен B, если B не компилируется побайтно, чем A не будет компилироваться

когда вы это сделаете (требуется 'A)

он выбрасывает значение переменной Symbol is void: A

Поэтому убедитесь, что вы скомпилировали каждый пакет, чем попробуйте require.

person Sharad    schedule 23.07.2011