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





Скопируйте и вставьте из 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 определяется следующим образом:
C:\.emacs существует, используйте C:/. Это сделано для обратной совместимости, поскольку в предыдущих версиях по умолчанию использовался C:/, если HOME не был установлен.В Emacs ~ в начале имени файла расширяется до вашего HOME каталога, поэтому вы всегда можете найти свой файл .emacs с помощью C-x C-f ~/.emacs.
Дополнительная информация на Домашняя страница и каталоги автозагрузки в MS-Windows.
Emacs жалуется, что "_emacs" устарел :(
Спасибо. Это объяснение действительно помогло мне правильно настроить emacs после урока по закрытию, где об этом даже не упоминалось. Создал переменную HOME в окнах, и теперь она работает.
Что касается вашего пункта 5 выше, то каталог, который ищет меня emacs, - это C: \ Users \ userid \ AppData \ Roaming в Windows 7, но, конечно, мой компьютер находится в домене.
В Windows 10 я установил для переменной HOME значение% USERPROFILE%, чтобы избежать суффикса AppData.
На моем компьютере с 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 \ <ПОЛЬЗОВАТЕЛЬ>.
Это сработало для меня. Я создал файл .emacs в каталоге Roaming в AppData и работает как шарм! Windows 10.
Работал в Windows 10
В Windows XP это:
C:\Documents and Settings\yourusernamehere\Application Data\
Откройте файл в Emacs для Windows следующим образом:
C-x C-f ~/.emacs
Больше информации в Emacs Вики
Затем нажмите «Файл»> «Открыть файл ...» или «Сохранить как ...», чтобы увидеть, где находится ~ / в знакомом диалоговом окне «Открыть» 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 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. Странный.
В версиях Emacs для Windows выше 22 кажется, что он переместился на
~/.emacs.d/init.el
, ~ - значение вашей переменной среды HOME (см. Панель управления → Система → Передовой → Переменные среды).
Сам файл может не существовать. В таком случае просто создайте его.
В Emacs 23 и Windows 7 это работает, только если вы установите:
HKCU\SOFTWARE\GNU\Emacs\HOME
Наконец я нашел это! Спасибо!
Наконец я нашел это! Я тоже!
Под "набором" вы имеете в виду создание этого ключа (без содержания)?
Как ответил канья, путь к этому файлу хранится в переменной 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:
Пожалуйста, обратитесь к документации по форматированию вашего ответа. Это довольно просто и принесет вам больше репутации.
Когда я сохранил файл с именем ~ / .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 (по крайней мере, насколько мне известно).
В 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.
Для 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
Или вам может потребоваться найти с помощью C-x C-f ~ / _emacs (вместо точки). Использование подчеркивания для вашего init - обычная (и рекомендуемая) практика как для Vim, так и для Emacs.