Ответ 1
Я предполагаю, что ваша конечная цель - запустить Emacs с USB-накопителя, который вы можете носить с собой. Существует два способа запуска Emacs с другим файлом инициализации:
(1) -q -load way
Это просто запустить
emacs -q --load path-to-your-init.el
который запускает Emacs без инициализации, затем загружает path-to-your-init.el
Gotchas этого способа: в этом случае Emacs действительно не считает файл el файлом init, на самом деле Emacs вообще не прошел инициализацию, а это означает, что следующие шаги после инициализации пропущены
-
включение пакетов, то есть оценка
(package-initialize)
-
running hook
after-init-hook
, то есть, оценивая(run-hooks after-init-hook)
Возможно, вам придется добавить материал после инициализации в альтернативный файл инициализации.
Кроме того, интерфейс Customize не позволит вам сохранять настройки, если Emacs запущен с опцией -q
.
(2) путь HOME
Создайте my-emacs.bat с содержимым:
set HOME=%~dp0
C:\path-to-your\Emacs\bin\runemacs.exe --xrm "emacs.Background: light green"
Когда вы нажимаете на этот файл bat, Emacs создает папку с именем .emacs.d
не в вашем обычном каталоге пользователя, а в том, где находится файл bat. Вы можете разместить свой init.el
в этой папке .emacs.d
. С помощью этого Emacs оценка (find-file "~/.emacs.d/init.el) открывает ваш собственный переносимый init.el
, а не файл init в вашем обычном каталоге пользователя. Вы можете удалить часть --xrm "emacs.Background: light green"
, я включаю это, потому что я всегда забываю, какой Emacs есть.
Gotchas: этот Emacs имеет свой собственный каталог пакетов в своем собственном каталоге .emacs.d
. Это может быть или не быть тем, что вы хотите. Если вы хотите предоставить общий доступ к каталогу пакетов, вы можете изменить package-user-dir
или создать символическую ссылку в каталог с общим доступом, используя расширение командной строки.
Что следует учитывать при запуске Emacs на USB-накопителе:
Emacs передает некоторые из своих функций внешним инструментам. Grepping и сравнение передаются на grep и diff, поэтому вы, вероятно, установили, по крайней мере, GnuWin32 Grep и GnuWin32 DiffUtils в вашей системе. И часть проверки орфографии передается на аутсорс, которая также является отдельной установкой. Шифрование передается на GPG, поэтому Gpg4Win - другая отдельная установка. Чтобы ваши портативные Emacs имели все эти функции, все эти внешние инструменты также должны быть на вашем USB-накопителе. К счастью, GnuWin32 и aspell являются портативными. Я не знаю, есть ли GPG. Зависимость от внешнего grep может быть устранена, если вам удастся сделать версии lgrep и rgrep, которые зависят только от собственной grep eshell, но, похоже, никто этого не сделал, поэтому сделать такой lgrep/rgrep смело идти туда, куда никто не ходил раньше.