Ответы:
Скопируйте и вставьте из FAQ по Emacs, http://www.gnu.org/software/emacs/windows/ :
В Windows .emacsфайл может быть вызван _emacsдля обратной совместимости с файловыми системами DOS и FAT, где имена файлов не могут начинаться с точки. Некоторые пользователи предпочитают продолжать использовать такое имя, потому что Проводник Windows не может создать файл с именем, начинающимся с точки, даже если файловая система и большинство других программ могут его обработать. В Emacs 22 и новее также может быть вызван файл инициализации .emacs.d/init.el. Многие другие файлы, созданные пакетами Lisp, теперь также хранятся в .emacs.dкаталоге, так что все ваши файлы, связанные с Emacs, хранятся в одном месте.
Все упомянутые выше файлы должны находиться в вашем HOME каталоге. Каталог HOME определяется следующим образом:
C:\.emacsсуществует, то используйте C:/. Это сделано для обратной совместимости, поскольку в предыдущих версиях по умолчанию использовалось значение C:/HOME.В Emacs ~имя файла в начале расширяется до вашего HOME каталога, поэтому вы всегда можете найти свой файл .emacs с помощью C-x C-f ~/.emacs.
Дополнительную информацию можно найти в HOME и каталогах автозагрузки в MS-Windows .
Его нужно хранить в переменной user-init-file. Используйте C-H v user-init-file RETдля проверки. Вы также можете открыть его напрямую, используяM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression?
Откройте файл в Emacs для Windows следующим образом:
C-x C-f ~/.emacs
Дополнительная информация в Emacs Wiki
В моей коробке с Vista это C:\Users\<USER>\AppData\Roaming\
Обратите внимание, что может быть НЕ достаточно просто ввести Ctrl-x Ctrl-f ~/.emacsи создать файл.
Возможно, ваше приложение Emacs использует другое место для хранения вашего файла инициализации, и если это так, то создание файла ~ / .emacs просто создает бесполезный файл, который ваше приложение Emacs игнорирует.
Кроме того, вы можете захотеть сделать больше, чем просто получить доступ к файлу инициализации .emacs, но вы можете захотеть узнать, где он находится, т. Е. Его путь.
Для этого есть два метода:
Простой способ: введите Ctrl+ H Vuser-init-fileReturn
Немного сложнее: узнать, где ваша система хранит собственный файл .emacs, можно:
c:/Users/user1/AppData/Roaming/.emacs.el. Этот сайт emacswiki.org/emacs/DotEmacsDotD помог мне понять, что мне нужно назвать файл, ~/.emacs.d/init.elчто означает, что файл в файловой системе находится в c:\Users\user1\AppData\Roaming\.emacs.d\init.el(совсем не то, что я ожидал). Я предпочитаю устанавливать переменную среды HOME и помещать файл в свой %USERPROFILE%каталог, который является логическим каталогом HOME в Windows (по крайней мере, насколько мне известно).
В Windows 7 поместите свой init.elфайл C:\Users\user-name\AppData\Roaming\.emacs.d\, где имя пользователя - это ваша папка пользователя / входа.
Позаботьтесь о том, чтобы ваш init.elфайл не был назван init.el.txt. Это то, что делает Windows, если вы создаете файл с помощью какого-нибудь редактора, например Блокнота.
Вы должны создать файл инициализации emacs. Один не создается автоматически. У меня была аналогичная проблема, и этот ответ отслеживает, что я сделал.
Моя проблема заключалась в том, что мой ~/.emacs.elфайл не загружался. Странно, потому что у меня это всегда срабатывало.
Этот вопрос / ответ помог мне, но мне пришлось поместить свой файл инициализации в папку, %USERPROFILE%\AppData\Roaming\.emacs.d\init.elпотому что это, по-видимому, поведение по умолчанию в Windows.
Чтобы устранить эту проблему, я выполнил следующее в буфере emacs * scratch * .
user-emacs-directory
"~/.emacs.d/"
Когда я увидел user-emacs-directoryэто ~/.emacs.d, я просто переместил свой файл .emacs.el в %USERPROFILE%\.emacs.d\init.el. Но это все равно не сработало. Я продолжил, expand-file-nameкак показано ниже:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Мне нравится, как работает Windows. (нет) Я переместил свой emacs.elфайл в папку, %USERPROFILE%\AppData\Roaming\.emacs.d\init.elи это сработало. Теперь файл читался. Но у меня возникли другие ошибки, потому что мой файл инициализации загружал другие (личные emacs) файлы (в формате ~/myenv/emacs/*.el.
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
Хм ... Похоже, все мои файлы ~/myenv/emacs/*.elнужно переместить, чтобы это работало, но я не хотел этого делать. Затем я понял, что, поскольку переменная среды HOME не была установлена, emacs выполнял свое поведение по умолчанию .
РЕШЕНИЕ
Как только я установил для своей HOMEпеременной среды Windows значение, %USERPROFILE%все стало работать так же, как и последние 25 лет. :-)
Чтобы установить переменную среды HOME, я набрал WindowsKey + «изменить переменные среды для вашей учетной записи», чтобы открыть диалоговое окно « Переменные среды », и вошел HOME=%USERPROFILE%.
Теперь мой файл инициализации emacs .emacs.el вернулся на свое законное место, $HOME/.emacs.elа не в%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Честно говоря, если бы в Windows было только одно место для размещения файлов для установленных пользователем пакетов, решение сделать HOME = %USERPROFILE\AppData\Roamingмогло бы быть приемлемым, но поскольку некоторые приложения используют %USERPROFILE%, некоторые используют, %USERPROFILE\AppData\Roamingа другие используют %USERPROFILE\AppData\Localего, просто трудно узнать, где найти вашу конфигурацию. файлы.
Я предпочитаю иметь все в моем каталоге% USERPROFILE% или $ HOME.
Другой похожий вопрос был здесь:
Как ответил канья, путь к этому файлу хранится в user-init-fileпеременной (или, если файл инициализации не существует, переменная содержит значение по умолчанию для того, где его создать).
Итак, независимо от того, какое из возможных имен файлов инициализации вы используете и в каком каталоге он находится, вы должны иметь возможность посетить свой файл инициализации с помощью:
M-: (find-file user-init-file) RET
Или отобразите его полный путь в эхо-области с помощью:
M-: (expand-file-name user-init-file) RET
В Emacs 23 и Windows 7 это работает, только если вы установите:
HKCU\SOFTWARE\GNU\Emacs\HOME
Я обнаружил, что Emacs 22 иногда открывает либо «C: \ Documents and Settings \ username \ Application Data \ .emacs», либо просто «C: \ Documents and Settings \ username \ .emacs» на моей машине XP. Я не нашел объяснения, почему он иногда меняет свое мнение.
~ всегда будет указывать на то, что текущий экземпляр emacs считает HOME, но подсказка kanja (Ch v user-init-file) всегда сообщит вам, чему на самом деле соответствует ~ / .emacs.
HOMEпеременную среды по-разному, в зависимости от того, как я начинаю runemacs.exe. Если я запустил его из проводника, HOMEбудет установлено значение C:\Documents and Settings\username, но если я запустил его из меню «Пуск», HOMEбудет C:\Documents and Settings\username\Application Data. Странный.
В Windows XP это:
C:\Documents and Settings\yourusernamehere\Application Data\
Существует список каталогов на основе вашей версии Windows и дополнительной информации: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
В Windows 8.1, если Emacs запускается из проводника Windows , ярлыка или из консоли cmd, он использует файл инициализации C: \ Users \ <USER> \ AppData \ Roaming.emacs . Когда я запускаю Emacs из PowerShell, Emacs ищет свой файл инициализации в папке C: \ Users \ <USER> . Исправление этой проблемы заключалось в установке переменной среды пользователя HOME (Панель управления \ Система и безопасность \ Система-> Дополнительные параметры системы-> Дополнительно-> Переменные среды) на C: \ Users \ <USER> . После этого изменения, независимо от того, как я запускаю Emacs, он использует один и тот же файл инициализации (см. Принятый ответ на этот вопрос )
Для WIndows7 и Emacs26.3 :
если HOMEзадана среда, то .emacsфайл должен находиться в этой папке.
в противном случае он должен быть в c:\.
В обоих случаях, если .emacsего нет, _emacsследует использовать.
Это связано с тем, что мы не можем создать .emacsфайл в соответствии с правилами именования файлов Windows (но мы можем загрузить или скопировать его из другого места).