Ответы:
Скопируйте и вставьте из 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 (но мы можем загрузить или скопировать его из другого места).