Де я можу знайти .emacs файл для Emacs, що працює в Windows?


115

Я намагався шукати файл .emacs для інсталяції Windows для Emacs, але не зміг його знайти. Чи має таке ім’я файлу в Windows, як в Unix?

Чи повинен я сам це створити? Якщо так, під який конкретний каталог він знаходиться?

Відповіді:


108

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

Куди я кладу свій файл init?

У Windows .emacsфайл може бути викликаний _emacsзворотною сумісністю з файловими системами DOS і FAT, де назви файлів не могли починатися з крапки. Деякі користувачі вважають за краще продовжувати використовувати таке ім’я, оскільки Windows Explorer не може створити файл із іменем, починаючи з крапки, навіть незважаючи на те, що файлова система та більшість інших програм можуть впоратися з цим. У Emacs 22 та новіших версіях файл init також може бути викликаний .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 користувача, як правило, каталог під назвою Data Data в каталозі профілів користувача, розташування якого змінюється залежно від версії Windows та того, чи є комп'ютер частиною домену.

У Emacs ~на початку ім'я файлу розгорнуто до каталогу HOME, тому ви завжди можете знайти свій файл .emacs C-x C-f ~/.emacs.

Додаткову інформацію можна знайти в каталогах HOME та Startup Directories в MS-Windows .


1
Або вам може знадобитися знайти Cx Cf ~ / _emacs (замість періоду). Використання підкреслення для вашого init є загальною (і запропонованою) практикою як для Vim, так і для Emacs.
лабіринт

Emacs скаржиться, що "_emacs" застаріло :(
Brian Z

Дякую. Це пояснення насправді допомогло мені налаштувати emacs належним чином після навчального посібника, де вони навіть не згадували про це. Створив змінну HOME у Windows і зараз вона працює.
Siniyas

Для мене у зв’язку з вашим пунктом 5 вище, для мене шукає каталог emacs: C: \ Users \ userid \ AppData \ Roaming в Windows 7, але, звичайно, мій комп'ютер знаходиться в домені.
користувач8128167

У Windows 10 я встановив змінну HOME на% USERPROFILE%, щоб уникнути суфікса AppData.
Bae

80

Він повинен зберігатися у змінному файлі user-init. Використовуйте C-H v user-init-file RETдля перевірки. Ви також можете відкрити його безпосередньо, використовуючиM-x eval-expression RET (find-file user-init-file) RET


8
Це дуже корисно, я здивований, що це не згадується в посібнику про файли init.
Брайан Z

Цікаво, чому коли я спробую це, я отримую trailing garbage following expression?
Марко Грдиніч

Чи використовували ви дужки?
Хосе Ромеро

29

Відкрийте такий файл у Emacs для Windows:

C-x C-f ~/.emacs

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


11
А потім натисніть Файл> Відкрити файл ... або Зберегти як ..., щоб побачити, де ~ / знаходиться у звичному діалоговому вікні Windows Open.
Yoo

21

На моєму вікні Vista він знаходиться C:\Users\<USER>\AppData\Roaming\


1
Те саме для Windows 8.1 (Emacs 24) за винятком. Коли Emacs відкривається з Провідника Windows, посилання або cmd-консоль, він використовує файл профілю C: \ Users \ <USER> \ AppData \ Roaming \ .emacs, але якщо ви відкриєте Emacs з консолі PowerShell, Emacs шукатиме файл .emacs у C : \ Папка користувачів \ <USER>.
кри

Це працювало для мене. Я створив файл .emacs в каталозі Roaming в AppData, і він працює як шарм! Windows 10.
Ретро геймер

Працював у Windows 10
Алекс

6

Зауважте, що НЕ може бути достатньо лише ввести Ctrl-x Ctrl-f ~/.emacsта створити файл.

Можливо, ваша програма Emacs використовує інше місце для зберігання вашого файлу init, і якщо так, то створюючи файл ~ / .emacs просто створює марний файл, який ваша програма Emacs ігнорує.

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

Домогтися цього можна двома методами:

Простий спосіб: введіть Ctrl+ H Vuser-init-файлReturn

Трохи складніше: Ви можете дізнатися, де ваша система зберігає власний файл .emacs, виконавши:

  1. Клацніть параметри та прокрутіть униз до "Встановити шрифт за замовчуванням ..."
  2. Змініть налаштування шрифту та натисніть Гаразд
  3. У меню параметрів перейдіть до "Зберегти параметри"
  4. Коли параметри зберігаються, система зберігає свій файл .emacs, і ви можете прочитати шлях до файлу в мінібуфері внизу екрана Emacs

Будь ласка, зверніться до документів щодо форматування вашої відповіді. Це досить просто і заробить вам більше репутації.
Бхавік Шах

Коли я зберег файл з назвою файл ~ / .emacs.el, він був створений в 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

4

У Windows 7 поставте свій init.elфайл C:\Users\user-name\AppData\Roaming\.emacs.d\, де ім'я користувача - ваша папка користувача / входу.

Будьте уважні, щоб ваш init.elфайл не був названий init.el.txt. Це те, що робить Windows, якщо ви створюєте файл з таким редактором, як «Блокнот».


4

На версії Emacs для Windows старше 22 років, здається, він перейшов

~/.emacs.d/init.el

, ~будучи значенням змінної середовища HOME (див. Панель управління → СистемаДодатковоЗмінні середовища ).

Сам файл може не існувати. У такому випадку просто створіть його.


3

Ви повинні створити файл ініціалізації 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.

Ще одне подібне питання було тут:


"Подобається, як працює Windows. (Не)" - Ця проблема не має нічого спільного з Windows, окрім цього, те, що розробники Emacs робили для людей, які працюють з Emacs в Windows.
Кріс Чарабарук

2

Як відповіла kanja, шлях до цього файлу зберігається у user-init-fileзмінній (або якщо файлу init не існує, змінна містить значення за замовчуванням для місця її створення).

Отже, незалежно від того, яке з можливих імен файлів init ви використовуєте, і в якому каталозі він знаходиться, ви повинні мати можливість відвідати свій файл init за допомогою:

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

Або відобразити повний шлях у зоні відлуння за допомогою:

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


2

У Emacs 23 та Windows 7 він працює лише у тому випадку, якщо ви встановили:

HKCU\SOFTWARE\GNU\Emacs\HOME

Нарешті я знайшов це! Дякую!
Кріс

Нарешті я знайшов це! Я також!
нижня клавіша

Під "набором" ви маєте на увазі створення цього ключа (без вмісту)?
Пітер Мортенсен

1

Я виявив, що Emacs 22 періодично відкриватиме "C: \ Документи та параметри \ ім'я користувача \ Дані програми \ .emacs", або просто "C: \ Документи та налаштування \ ім'я користувача \ .emacs" на моїй машині XP. Я не знайшов пояснення, чому це час від часу змінює свою думку.

~ завжди вказуватиме на те, що поточний екземпляр emacs вважає ДОМАШНЄМО, але підказка kanja (Ch v user-init-file) завжди скаже вам, на що насправді відображається ~ / .emacs.


2
Зараз я помітив, що Windows буде встановлювати HOMEзмінну середовища по-різному, залежно від способу запуску runemacs.exe. Якщо я запускаю його з Провідника, HOMEвстановлено значення C:\Documents and Settings\username, але якщо я запускаю його з меню "Пуск", HOMEє C:\Documents and Settings\username\Application Data. Дивно.
рециклей



0

У 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 (див. Прийняту відповідь на це запитання )


0

Для WIndows7 та Emacs26.3:


якщо встановлено HOMEсередовище, то .emacsфайл повинен бути в цій папці.

в іншому випадку воно повинно бути в c:\.


В обох випадках, якщо .emacsйого немає, _emacsслід використовувати.

Це тому, що ми не можемо створити .emacsфайл відповідно до правил іменування файлів Windows (але ми можемо завантажити або скопіювати його з іншого місця).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.