Emacs: Как мне изменить `load-path`? - PullRequest
0 голосов
/ 07 марта 2012

Вопрос возникает в связи с проблемой добавления дочерних каталогов в путь загрузки. Вот решение . К сожалению, похоже, что путь загрузки полностью изменился. Я пытался исправить это сам, но не могу сделать, и мне нужна помощь.

Итак, мой вопрос: как мне вернуть load-path.

Я пытался (setq load-path (reverse load-path)), но это не удалось - это говорит о том, что load-path - это не список ...

Редактировать

Действительно, обратный путь загрузки работает - я не знаю, что я сделал не так, когда пытался сделать это перед публикацией.

Я сталкиваюсь с очень странной проблемой simple.el shadows sunrise-commander.el - хотя она должна была загружаться до этого. Я подумал - проблема в том порядке, в котором у меня есть каталоги в пути загрузки, но теперь, когда я изменил направление, load-path - progmodes dir до sunrise - проблема все еще существует. Я озадачен.

Тогда я переформулирую свой вопрос: как мне убедиться, что данное расширение загружает после основного кода Emacs?

Редактировать 2 :

В случае, если тень не означает, что я думаю - моя настоящая проблема в том, что многие клавиши sunrise-commander и icicles связаны с основными функциями emacs. Например, когда я использую сосульки, M-p привязывается к

M-p runs the command recenter-top-bottom, which is an interactive
compiled Lisp function in `window.el'.

Пока должно быть previous-history-element. Точно так же, когда я использую sunrise-commander M-u привязывается к

M-u runs the command subword-backward, which is an interactive
compiled Lisp function in `subword.el'.

в то время как на самом деле должно быть sr-history-next.

Редактировать 3 :

О, я решил это! В старые времена я устанавливал emacs для всей системы через менеджер пакетов synaptic. Тогда я пришел с решением - что таким образом невозможно иметь мои настройки со мной. И после этого я поддерживаю локальные пакеты emacs и emacs. Так что все, что мне нужно сделать, это удалить все системные компоненты Emacs.

** Редактировать 4 **:

Нет, это не так. Это способ расширения сочетаний клавиш ErgoEmacs. После того, как я это закомментировал, у меня M-n и M-p работают нормально в icicles. Хотя RET в Sunrise commander все еще вызывает функцию dired, а не функцию восхода. Надеюсь, решу это позже.

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Расширения загружаются либо require, либо load.load-path просто указывает список папок, в которых require будет искать.Представьте, что у вас есть каталог .emacs.d/vendor, полный расширений Emacs, и он добавлен к вашему load-path (порядок записей в пути загрузки не имеет значения, если только одно и то же расширение не находится в нескольких папках там, что называется загрузкой).отслеживание пути, которое можно проверить с помощью M-x list-load-path-shadows).На этом этапе вы можете сделать одно из двух:

(require 'extension)
;; or
(load "~/emacs.d/vendor/extension.el)

require имеет дополнительное преимущество: он не загружает библиотеку дважды.Итак, чтобы ответить на ваш вопрос - чтобы убедиться, что расширения загружаются после core (очень мало вещей загружаются автоматически в Emacs), его просто нужно требовать или загружать после того материала, который вы хотите загрузить после.

После вашего второго редактирования, я думаю, вам стоит взглянуть на эту замечательную статью о сочетаниях клавиш в Emacs .

1 голос
/ 18 марта 2012

Не уверен, если это имеет значение, но относительно того, «как мне загрузить что-то до simple.el»: вы не можете, потому что simple.el предварительно загружен в исполняемый файл `emacs ', поэтому он загружается задолго до загрузки .emacs.

...