Відповіді:
Скопіюйте та вставте з FAQ Emacs, 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 C-x C-f ~/.emacs
.
Додаткову інформацію можна знайти в каталогах HOME та Startup Directories в MS-Windows .
Він повинен зберігатися у змінному файлі user-init. Використовуйте C-H v user-init-file RET
для перевірки. Ви також можете відкрити його безпосередньо, використовуючиM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression
?
На моєму вікні Vista він знаходиться C:\Users\<USER>\AppData\Roaming\
Зауважте, що НЕ може бути достатньо лише ввести Ctrl-x Ctrl-f ~/.emacs
та створити файл.
Можливо, ваша програма Emacs використовує інше місце для зберігання вашого файлу init, і якщо так, то створюючи файл ~ / .emacs просто створює марний файл, який ваша програма Emacs ігнорує.
Крім того, ви можете зробити більше, ніж просто отримати доступ до файлу .emacs init, але ви можете знати, де він знаходиться, тобто його ім'я.
Домогтися цього можна двома методами:
Простий спосіб: введіть Ctrl+ H Vuser-init-файлReturn
Трохи складніше: Ви можете дізнатися, де ваша система зберігає власний файл .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
файл не завантажувався. Дивно, бо це для мене завжди працювало.
Це питання / відповідь допомогло мені, але мені довелося помістити свій файл init, %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.
Ще одне подібне питання було тут:
Як відповіла kanja, шлях до цього файлу зберігається у user-init-file
змінній (або якщо файлу init не існує, змінна містить значення за замовчуванням для місця її створення).
Отже, незалежно від того, яке з можливих імен файлів init ви використовуєте, і в якому каталозі він знаходиться, ви повинні мати можливість відвідати свій файл init за допомогою:
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: \ Документи та параметри \ ім'я користувача \ Дані програми \ .emacs", або просто "C: \ Документи та налаштування \ ім'я користувача \ .emacs" на моїй машині XP. Я не знайшов пояснення, чому це час від часу змінює свою думку.
~ завжди вказуватиме на те, що поточний екземпляр emacs вважає ДОМАШНЄМО, але підказка 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, він використовує файл init C: \ Users \ <USER> \ AppData \ Roaming.emacs . Коли я запускаю Emacs з PowerShell, Emacs шукає його файл init у папці C: \ Users \ <USER> . Виправленням цієї проблеми було встановлення змінної середовища HOME користувача (Панель управління \ Система та безпека \ Система-> Розширені налаштування системи-> Додаткові параметри> Змінні середовища) на C: \ Користувачі \ <USER> . Після цієї зміни, як би я не запустив Emacs, він використовує той самий файл init (див. Прийняту відповідь на це запитання )
Для WIndows7 та Emacs26.3:
якщо встановлено HOME
середовище, то .emacs
файл повинен бути в цій папці.
в іншому випадку воно повинно бути в c:\
.
В обох випадках, якщо .emacs
його немає, _emacs
слід використовувати.
Це тому, що ми не можемо створити .emacs
файл відповідно до правил іменування файлів Windows (але ми можемо завантажити або скопіювати його з іншого місця).