Где я могу найти свой файл .emacs для Emacs, работающего в Windows?

Я попытался найти файл .emacs для моей установки Windows для Emacs, но не смог его найти. У него то же имя файла в Windows, что и в Unix?

Придется ли мне создавать его самому? Если да, то в какой именно каталог он находится?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
119
0
82 896
16
Перейти к ответу Данный вопрос помечен как решенный

Ответы 16

Ответ принят как подходящий

Скопируйте и вставьте из FAQ по Emacs, http://www.gnu.org/software/emacs/windows/:

Куда мне поместить свой файл инициализации?

В Windows файл .emacs может называться _emacs для обратной совместимости с файловыми системами DOS и FAT, где имена файлов не могут начинаться с точки. Некоторые пользователи предпочитают продолжать использовать такое имя, потому что Windows Explorer не может создать файл с именем, начинающимся с точки, даже если файловая система и большинство других программ могут с этим справиться. В Emacs 22 и более поздних версиях файл инициализации также может называться .emacs.d/init.el. Многие другие файлы, созданные пакетами Lisp, теперь также хранятся в каталоге .emacs.d, так что все ваши файлы, связанные с Emacs, хранятся в одном месте.

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

  1. Если установлена ​​переменная окружения HOME, используйте указанный в ней каталог.
  2. Если в реестре задана запись HKCU \ SOFTWARE \ GNU \ Emacs \ HOME, используйте указанный в ней каталог.
  3. Если в реестре задана запись HKLM \ SOFTWARE \ GNU \ Emacs \ HOME, используйте указанный в ней каталог. Не рекомендуется, так как это приводит к тому, что пользователи используют один и тот же HOME каталог.
  4. Если C:\.emacs существует, используйте C:/. Это сделано для обратной совместимости, поскольку в предыдущих версиях по умолчанию использовался C:/, если HOME не был установлен.
  5. Используйте каталог AppData пользователя, обычно это каталог Application Data в каталоге профиля пользователя, расположение которого зависит от версии Windows и того, является ли компьютер частью домена.

В Emacs ~ в начале имени файла расширяется до вашего HOME каталога, поэтому вы всегда можете найти свой файл .emacs с помощью C-x C-f ~/.emacs.

Дополнительная информация на Домашняя страница и каталоги автозагрузки в MS-Windows.

Или вам может потребоваться найти с помощью C-x C-f ~ / _emacs (вместо точки). Использование подчеркивания для вашего init - обычная (и рекомендуемая) практика как для Vim, так и для Emacs.

labyrinth 27.01.2012 03:41

Emacs жалуется, что "_emacs" устарел :(

Brian Z 05.02.2015 15:59

Спасибо. Это объяснение действительно помогло мне правильно настроить emacs после урока по закрытию, где об этом даже не упоминалось. Создал переменную HOME в окнах, и теперь она работает.

Siniyas 15.09.2015 13:43

Что касается вашего пункта 5 выше, то каталог, который ищет меня emacs, - это C: \ Users \ userid \ AppData \ Roaming в Windows 7, но, конечно, мой компьютер находится в домене.

user8128167 22.11.2016 19:24

В Windows 10 я установил для переменной HOME значение% USERPROFILE%, чтобы избежать суффикса AppData.

Bae 18.01.2017 06:17

На моем компьютере с Vista это C:\Users\<USER>\AppData\Roaming\.

То же самое для Windows 8.1 (Emacs 24), за исключением. Когда Emacs открывается из проводника Windows, ссылки или консоли cmd, он использует файл профиля C: \ Users \ <USER> \ AppData \ Roaming \ .emacs, но если вы откроете Emacs из консоли PowerShell, Emacs будет искать файл .emacs в C : Папка \ Users \ <ПОЛЬЗОВАТЕЛЬ>.

kri 03.07.2015 17:38

Это сработало для меня. Я создал файл .emacs в каталоге Roaming в AppData и работает как шарм! Windows 10.

Retro Gamer 17.07.2018 00:25

Работал в Windows 10

Alex Kaszynski 20.06.2019 17:26

В Windows XP это:

C:\Documents and Settings\yourusernamehere\Application Data\

Откройте файл в Emacs для Windows следующим образом:

C-x C-f ~/.emacs

Больше информации в Emacs Вики

Затем нажмите «Файл»> «Открыть файл ...» или «Сохранить как ...», чтобы увидеть, где находится ~ / в знакомом диалоговом окне «Открыть» Windows.

Yoo 02.02.2011 06:16

Он должен храниться в переменной user-init-file. Используйте C-H v user-init-file RET для проверки. Вы также можете открыть его напрямую с помощью M-x eval-expression RET (find-file user-init-file) RET

Это настолько полезно, что я удивлен, что это не упоминается в разделе руководства, посвященном файлам инициализации.

Brian Z 20.08.2013 22:27

Интересно, почему при такой попытке я получаю trailing garbage following expression?

Marko Grdinic 07.11.2016 15:27

Вы использовали круглые скобки?

Jose Romero 17.02.2017 17:50

Я обнаружил, что Emacs 22 иногда открывает либо «C: \ Documents and Settings \ username \ Application Data \ .emacs», либо просто «C: \ Documents and Settings \ username \ .emacs» на моей машине XP. Я не нашел объяснения, почему он иногда меняет свое мнение.

~ всегда будет указывать на то, что текущий экземпляр emacs считает HOME, но подсказка kanja (C-h v user-init-file) всегда сообщит вам, чему на самом деле сопоставляется ~ / .emacs.

Теперь я заметил, что Windows будет устанавливать переменную среды HOME по-разному, в зависимости от того, как я запускаю runemacs.exe. Если я запускаю его из проводника, HOME устанавливается на C:\Documents and Settings\username, но если я запускаю его из меню «Пуск», HOME будет C:\Documents and Settings\username\Application Data. Странный.

remcycles 08.12.2010 00:37

В версиях Emacs для Windows выше 22 кажется, что он переместился на

~/.emacs.d/init.el

, ~ - значение вашей переменной среды HOME (см. Панель управления → СистемаПередовойПеременные среды).

Сам файл может не существовать. В таком случае просто создайте его.

В Emacs 23 и Windows 7 это работает, только если вы установите:

HKCU\SOFTWARE\GNU\Emacs\HOME

Наконец я нашел это! Спасибо!

Chris 22.12.2011 02:11

Наконец я нашел это! Я тоже!

lowerkey 28.03.2013 18:50

Под "набором" вы имеете в виду создание этого ключа (без содержания)?

Peter Mortensen 17.04.2017 02:22

Как ответил канья, путь к этому файлу хранится в переменной user-init-file (или, если файл инициализации не существует, переменная содержит значение по умолчанию для того, где его создать).

Итак, несмотря ни на что из возможных имен файлов инициализации, которые вы используете, и в каком каталоге он находится, вы должны иметь возможность посетить свой файл инициализации с помощью:

M-:(find-file user-init-file)RET

Или отобразите его полный путь в эхо-области с помощью:

M-:(expand-file-name user-init-file)RET

Существует список каталогов на основе вашей версии Windows и дополнительной информации: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html

Обратите внимание, что может быть НЕ достаточно просто ввести Ctrl-x Ctrl-f ~/.emacs и создать файл.

Возможно, ваше приложение Emacs использует другое место для хранения вашего файла инициализации, и если это так, то создание файла ~ / .emacs просто создает бесполезный файл, который ваше приложение Emacs игнорирует.

Кроме того, вы можете захотеть сделать больше, чем просто доступ для файла инициализации .emacs, но вы можете захотеть узнать, где он находится, то есть его путь.

Для этого есть два метода:

Простой способ: введите Ctrl + HV пользовательский файл инициализации Return

Немного более хитрый способ: Вы можете узнать, где ваша система хранит собственный файл .emacs:

  1. Щелкните параметры и прокрутите вниз до «Установить шрифт по умолчанию ...»
  2. Измените настройку шрифта и нажмите ОК
  3. В меню параметров выберите "Параметры сохранения".
  4. Когда параметры сохранены, система сохраняет свой файл .emacs, и вы можете прочитать путь к файлу в минибуфере внизу экрана Emacs

Пожалуйста, обратитесь к документации по форматированию вашего ответа. Это довольно просто и принесет вам больше репутации.

Bhavik Shah 22.11.2013 08:32

Когда я сохранил файл с именем ~ / .emacs.el file, он был создан в 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 (по крайней мере, насколько мне известно).

PatS 03.11.2018 01:05

В Windows 7 поместите файл init.el в C:\Users\user-name\AppData\Roaming\.emacs.d\, где имя пользователя - это ваша папка пользователя / входа.

Позаботьтесь о том, чтобы ваш файл init.el не назывался init.el.txt. Это то, что делает Windows, если вы создаете файл с помощью какого-нибудь редактора, такого как Блокнот.

В Windows 8.1, если Emacs запускается из проводник Виндоус, ярлыка или из консоли cmd, он использует файл инициализации C: \ Users \ <ПОЛЬЗОВАТЕЛЬ> \ AppData \ Roaming.emacs. Когда я запускаю Emacs из PowerShell, Emacs ищет свой файл инициализации в папке C: \ Пользователи \ <ПОЛЬЗОВАТЕЛЬ>. Исправление этой проблемы состояло в том, чтобы установить для переменной среды пользователя ДОМ (Панель управления \ Система и безопасность \ Система-> Расширенные настройки системы-> Дополнительно-> Переменные среды) значение C: \ Пользователи \ <ПОЛЬЗОВАТЕЛЬ>. После этого изменения, независимо от того, как я запускаю Emacs, он использует тот же файл инициализации (см. Принятый ответ этого вопрос)

Вы должны создать файл инициализации emacs. Один не создается автоматически. У меня была аналогичная проблема, и этот ответ отслеживает, что я сделал.

Моя проблема заключалась в том, что мой файл ~/.emacs.el не загружался. Странно, потому что у меня это всегда срабатывало.

Этот вопрос / ответ помог мне, но мне пришлось поместить свой файл инициализации в %USERPROFILE%\AppData\Roaming\.emacs.d\init.el, потому что это, по-видимому, поведение по умолчанию в Windows.

Чтобы устранить эту проблему, я выполнил следующее в буфере emacs *царапать*.

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 выполнял свое поведение по умолчанию.

РЕШЕНИЕ

Как только я установил для своей переменной среды Windows HOME значение %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.

Еще один похожий вопрос был здесь:

«Должен полюбить, как работает Windows. (Не)» - эта проблема не имеет ничего общего с Windows, кроме того, что разработчики Emacs сделали с людьми, которые запускают Emacs в Windows.

Chris Charabaruk 02.12.2018 01:43

Для WIndows7 и Emacs26.3 :


если установлена ​​среда HOME, то файл .emacs должен находиться в этой папке.

в противном случае он должен быть в c:\.


В обоих случаях, если .emacs отсутствует, следует использовать _emacs.

Это связано с тем, что мы не можем создать файл .emacs в соответствии с правилами именования файлов Windows (но мы можем загрузить или скопировать его из другого места).

После Emacs 27.1 emacs имеет начал уважать$XDG_CONFIG_HOME. Файл инициализации или каталог инициализации теперь можно найти в $XDG_CONFIG_HOME/emacs/init.el.

В Windows $XDG_CONFIG_HOME может переводить to %LOCALAPPDATA%.

В любом случае вы можете использовать следующие переменные emacs, чтобы узнать местоположение вашего файла инициализации с помощью M-x eval-expression

user-init-file

или каталог конфигурации emacs

user-emacs-directory

Другие вопросы по теме