Я пробовал искать файл .emacs для моей установки Windows для Emacs, но я не смог его найти. Имеет ли тот же файл под Windows, что и в Unix?
Должен ли я сам создать его? Если да, то в какой конкретной директории это происходит?
Я пробовал искать файл .emacs для моей установки Windows для Emacs, но я не смог его найти. Имеет ли тот же файл под Windows, что и в Unix?
Должен ли я сам создать его? Если да, то в какой конкретной директории это происходит?
Скопируйте и вставьте в Emacs FAQ, http://www.gnu.org/software/emacs/windows/:
В Windows файл .emacs
можно назвать _emacs
для обратной совместимости с файловыми системами DOS и FAT, где имена файлов не могут начинаться с точки. Некоторые пользователи предпочитают продолжать использовать такое имя, поскольку Windows Explorer не может создать файл с именем, начинающимся с точки, даже если файловая система и большинство других программ могут ее обработать. В Emacs 22 и более поздних версиях файл init также можно .emacs.d/init.el
Многие из других файлов, которые создаются пакетами Lisp, теперь также хранятся в каталоге .emacs.d
, поэтому все ваши файлы, связанные с Emacs, хранятся в одном месте.
Все файлы, упомянутые выше, должны войти в ваш каталог HOME. Каталог HOME определяется следующим образом:
C:\.emacs
, используйте C:/
. Это относится к обратной совместимости, поскольку предыдущие версии по умолчанию были установлены в C:/
если HOME не был установлен. В Emacs ~
в начале имени файла расширяется в ваш каталог HOME, поэтому вы всегда можете найти файл.emacs с Cx Cf ~/.emacs
.
Там есть дополнительная информация в каталогах HOME и Startup на MS-Windows.
Он должен храниться в переменном user-init файле. Используйте C-H v user-init-file RET
для проверки. Вы также можете открыть его напрямую, используя M-x eval-expression RET (find-file user-init-file) RET
Откройте файл, подобный этому в Emacs для Windows:
C-x C-f ~/.emacs
Дополнительная информация в Emacs Wiki
В моем окне Vista он находится в C:\Users\<USER>\AppData\Roaming\
Обратите внимание, что не может быть достаточно просто набрать Ctrl-x Ctrl-f ~/.emacs
и создать файл.
Возможно, ваше приложение Emacs использует другое место для хранения файла инициализации, и если это так, то создание файла ~/.emacs просто создает бесполезный файл, который игнорирует ваше приложение Emacs.
Кроме того, вы можете сделать больше, чем просто доступ к init файлу .emacs, но вы можете знать, где он находится, т.е. его путь.
Для этого есть два метода:
Простой способ: введите Ctrl + H V user-init-file Return
Немного сложнее: Вы можете узнать, где ваша система хранит собственный файл .emacs:
В Windows 7 поместите ваш init.el
файл в C:\Users\user-name\AppData\Roaming\.emacs.d\
, где имя пользователя является вашей папкой пользователя/входа.
Позаботьтесь, чтобы ваш файл init.el
не назовался init.el.txt
. Это то, что делает Windows, если вы создаете свой файл с помощью какого-то редактора, такого как Блокнот.
В версиях Emacs в Windows выше 22 он, кажется, переместился на
~/.emacs.d/init.el
~
является значением переменной среды HOME (см. Панель управления → Система → Дополнительно → Переменные среды).
Сам файл может не существовать. В этом случае просто создайте его.
В Emacs 23 и Windows 7 он работает только если вы установили:
HKCU\SOFTWARE\GNU\Emacs\HOME
Как сказал kanja, путь к этому файлу сохраняется в переменной user-init-file
(или если файл инициализации не существует, переменная содержит значение по умолчанию для того, где его создавать).
Поэтому, независимо от того, какие из возможных имен файлов инициализации вы используете, и в каком каталоге он находится, вы можете посетить свой файл инициализации с помощью
M-: (find-file user-init-file)
RET
Или отобразите полный путь в области эха с помощью:
M-: (expand-file-name user-init-file)
RET
В Windows XP это:
C:\Documents and Settings\yourusernamehere\Application Data\
Я обнаружил, что Emacs 22 будет иногда открывать либо "C:\Documents and Settings\username\Application Data \.emacs", либо просто "C:\Documents and Settings\имя_пользователя \.emacs" на моей машине XP, Я не нашел объяснения, почему это время от времени меняет его.
~ всегда укажет на то, что текущий экземпляр emacs считает HOME, но подсказка kanja (C-h v user-init-file) всегда скажет вам, что на самом деле отображает ~/.emacs.
Существует список каталогов на основе вашей версии 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 (Control Panel\System и Security\System- > Advanced system settings- > Advanced- > Environment) в C:\Users\<USER> . После этого изменения, независимо от того, как я запускаю Emacs, он использует один и тот же файл инициализации (см. Принятый ответ этого question)
Вы должны создать файл инициализации 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:
Hum... Похоже, что все мои файлы ~/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.
Другой подобный вопрос был здесь: