Где я могу найти мой файл .emacs для Emacs, работающего в Windows? - PullRequest
102 голосов
/ 10 октября 2008

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

Должен ли я сам создать это? Если да, то в какой каталог он идет?

Ответы [ 14 ]

97 голосов
/ 10 октября 2008

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

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

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

Все файлы, упомянутые выше, должны находиться в вашем домашнем каталоге. Каталог 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.

Дополнительную информацию можно получить по адресу HOME и Startup Directories в MS-Windows .

72 голосов
/ 10 октября 2008

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

27 голосов
/ 10 октября 2008

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

C-x C-f ~/.emacs

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

19 голосов
/ 10 октября 2008

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

6 голосов
/ 22 ноября 2013

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

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

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

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

Простой способ: введите Ctrl + H V user-init-file Return

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

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

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

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

4 голосов
/ 02 января 2010

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

~/.emacs.d/init.el

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

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

2 голосов
/ 16 июня 2012

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

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

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

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

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

2 голосов
/ 07 августа 2010

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

HKCU\SOFTWARE\GNU\Emacs\HOME
1 голос
/ 03 ноября 2018

Вы должны создать файл инициализации 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 выполняет поведение по умолчанию .

РЕШЕНИЕ

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

Другой похожий вопрос был здесь:

...