ฉันจะหาไฟล์. emacs สำหรับ Emacs ที่ทำงานบน Windows ได้ที่ไหน


115

ฉันพยายามมองหาไฟล์. emacs สำหรับการติดตั้ง Windows สำหรับ Emacs แต่ไม่พบ มันมีชื่อไฟล์เดียวกันใน Windows เหมือนกับใน Unix หรือไม่?

ฉันต้องสร้างมันขึ้นมาเอง? ถ้าใช่มันไปอยู่ภายใต้ไดเรกทอรีใด?

คำตอบ:


108

คัดลอกและวางจากคำถามที่พบบ่อยของ 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 ของผู้ใช้โดยปกติจะเป็นไดเร็กทอรีที่เรียกว่า Application Data ภายใต้ไดเร็กทอรีโปรไฟล์ของผู้ใช้ตำแหน่งที่แตกต่างกันไปตามเวอร์ชันของ Windows และคอมพิวเตอร์นั้นเป็นส่วนหนึ่งของโดเมนหรือไม่

ภายใน Emacs ~ที่จุดเริ่มต้นของชื่อไฟล์จะถูกขยายไปยังไดเร็กทอรี HOME ของคุณคุณจึงสามารถค้นหาไฟล์. macs ของคุณได้ตลอดเวลาด้วยC-x C-f ~/.emacs.

มีข้อมูลเพิ่มเติมที่เป็นหน้าแรกและเริ่มต้นไดเรกทอรีบน MS-ของ


1
หรือคุณอาจต้องหาด้วย Cx Cf ~ / _emacs (แทนจุด) การใช้ขีดล่างสำหรับการเริ่มต้นของคุณเป็นวิธีปฏิบัติทั่วไป (และแนะนำ) สำหรับทั้ง Vim และ Emacs
เขาวงกต

Emacs บ่นว่า "_emacs" เลิกใช้แล้ว :(
Brian Z

ขอบคุณ คำอธิบายนี้ช่วยให้ฉันตั้งค่า emac ได้อย่างถูกต้องตามแบบฝึกหัดเกี่ยวกับ clojure ซึ่งพวกเขาไม่ได้พูดถึง สร้างตัวแปร HOME บน windows และตอนนี้ใช้งานได้
Siniyas

สำหรับฉันในการอ้างอิงถึงข้อ 5 ของคุณข้างต้นไดเร็กทอรีที่ emac กำลังมองหาฉันคือ C: \ Users \ userid \ AppData \ Roaming บน Windows 7 แต่แน่นอนว่าคอมพิวเตอร์ของฉันอยู่ในโดเมน
user8128167

ใน Windows 10 ฉันตั้งค่าตัวแปร HOME เป็น% USERPROFILE% เพื่อหลีกเลี่ยงคำต่อท้าย AppData
แบ้

80

ควรเก็บไว้ในตัวแปร user-init-file ใช้C-H v user-init-file RETตรวจสอบ. คุณยังสามารถเปิดได้โดยตรงโดยใช้M-x eval-expression RET (find-file user-init-file) RET


8
สิ่งนี้มีประโยชน์มากฉันแปลกใจที่ไม่มีการกล่าวถึงในส่วนคู่มือเกี่ยวกับไฟล์ init
Brian Z

ฉันสงสัยว่าทำไมเมื่อฉันลองสิ่งนี้ฉันได้รับtrailing garbage following expression?
Marko Grdinic

คุณใช้วงเล็บหรือไม่
Jose Romero

29

เปิดไฟล์แบบนี้ใน Emacs สำหรับ Windows:

C-x C-f ~/.emacs

ข้อมูลเพิ่มเติมในEmacs Wiki


11
จากนั้นคลิกไฟล์> เปิดไฟล์ ... หรือบันทึกเป็น ... เพื่อดูว่า ~ / อยู่ที่ไหนในกล่องโต้ตอบ Windows Open ที่คุ้นเคย
ยู

21

ในกล่อง Vista ของฉันมีอยู่ C:\Users\<USER>\AppData\Roaming\


1
เหมือนกันสำหรับ windows 8.1 (Emacs 24) โดยมีข้อยกเว้น เมื่อเปิด Emacs จาก Windows Explorer ลิงก์หรือคอนโซล cmd จะใช้ไฟล์โปรไฟล์ C: \ Users \ <USER> \ AppData \ Roaming \ .emacs แต่ถ้าคุณเปิด Emacs จากคอนโซล PowerShell Emacs จะมองหาไฟล์. emacs ใน C : \ Users \ <USER> โฟลเดอร์
kri

สิ่งนี้ได้ผลสำหรับฉัน ฉันสร้างไฟล์. emacs ในไดเร็กทอรี Roaming ใน AppData และทำงานได้อย่างมีเสน่ห์! Windows 10.
Retro Gamer

ทำงานใน Windows 10
Alex Kaszynski

6

โปรดทราบว่าการพิมพ์Ctrl-x Ctrl-f ~/.emacsและสร้างไฟล์อาจไม่เพียงพอ

อาจเป็นไปได้ว่าแอปพลิเคชัน Emacs ของคุณใช้ที่อื่นในการจัดเก็บไฟล์ init ของคุณและหากเป็นเช่นนั้นการสร้างไฟล์ ~ / .emacs จะสร้างไฟล์ที่ไร้ประโยชน์ซึ่งแอปพลิเคชัน Emacs ของคุณเพิกเฉย

นอกจากนี้คุณอาจต้องการทำมากกว่าแค่เข้าถึงไฟล์ init. emacs แต่คุณอาจต้องการทราบว่ามันอยู่ที่ไหนเช่นชื่อพา ธ ของมัน

ในการรับสิ่งนี้มีสองวิธี:

วิธีง่ายๆ: พิมพ์Ctrl+ H Vuser-init-fileReturn

วิธีที่ยุ่งยากกว่าเล็กน้อย: คุณสามารถค้นหาว่าระบบของคุณเก็บไฟล์. macs ของตัวเองไว้ที่ใดโดย:

  1. คลิกตัวเลือกและเลื่อนลงไปที่ "Set Default Font ... "
  2. เปลี่ยนการตั้งค่าแบบอักษรแล้วคลิกตกลง
  3. บนเมนูตัวเลือกไปที่ "บันทึกตัวเลือก"
  4. เมื่อบันทึกตัวเลือกระบบจะบันทึกไฟล์. emacs และคุณสามารถอ่านเส้นทางไฟล์ในมินิบัฟเฟอร์ที่ด้านล่างของหน้าจอ Emacs

โปรดดูเอกสารเกี่ยวกับการจัดรูปแบบคำตอบของคุณ มันค่อนข้างง่ายและจะทำให้คุณมีชื่อเสียงมากขึ้น
Bhavik Shah

เมื่อฉันบันทึกไฟล์ชื่อ ~ / .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 ทำหากคุณสร้างไฟล์ด้วยโปรแกรมแก้ไขบางอย่างเช่น Notepad


4

ในเวอร์ชันของ Emac บน Windows ที่สูงกว่า 22 ดูเหมือนว่าจะถูกย้ายไปที่

~/.emacs.d/init.el

, ~เป็นค่าของตัวแปรสภาพแวดล้อมที่บ้านของคุณ (ดูแผงควบคุม→ ระบบขั้นสูงตัวแปรสภาพแวดล้อม )

ไฟล์นั้นอาจไม่มีอยู่ ในกรณีนั้นให้สร้างมันขึ้นมา


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และสิ่งนี้ได้ผล ขณะนี้กำลังอ่านไฟล์ แต่ฉันได้รับข้อผิดพลาดอื่น ๆ เนื่องจากไฟล์เริ่มต้นของฉันโหลดไฟล์ (emac ส่วนบุคคล) อื่น ๆ (ใน~/myenv/emacs/*.el.

Warning (initialization): An error occurred while loading c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:

ฮึ่ม ... ดูเหมือนว่าไฟล์ทั้งหมดของฉัน~/myenv/emacs/*.elจะต้องถูกย้ายเพื่อให้มันทำงานได้ แต่ฉันไม่ต้องการทำอย่างนั้น แล้วฉันตระหนักว่าเพราะตัวแปรสภาพแวดล้อมที่บ้านก็ไม่ได้ตั้งค่าemacs ได้ดำเนินการการทำงานเริ่มต้นของมัน

สารละลาย

เมื่อฉันตั้งค่าHOMEตัวแปรสภาพแวดล้อมwindows ของฉัน%USERPROFILE%ทุกอย่างก็เริ่มทำงานเหมือนเดิมตลอด 25 ปีที่ผ่านมา :-)

การตั้งค่าตัวแปรสภาพแวดล้อมที่บ้านผมพิมพ์ 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
Chris Charabaruk

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

ในที่สุดฉันก็พบสิ่งนี้! ขอบคุณ!
คริส

ในที่สุดฉันก็พบสิ่งนี้! ฉันด้วย!
คีย์ล่าง

โดย "set" คุณหมายถึงการสร้างคีย์นั้น (โดยไม่มีเนื้อหา) ใช่หรือไม่
Peter Mortensen

1

ฉันพบว่าบางครั้ง Emacs 22 จะเปิด "C: \ Documents and Settings \ username \ Application Data \ .emacs" หรือเพียงแค่ "C: \ Documents and Settings \ username \ .emacs" บนเครื่อง XP ของฉัน ฉันไม่พบคำอธิบายว่าทำไมบางครั้งถึงเปลี่ยนใจ

~ จะชี้ไปที่อินสแตนซ์ปัจจุบันของ emac ที่คิดว่าเป็น HOME เสมอ แต่เคล็ดลับของ kanja (Ch v user-init-file) จะบอกคุณเสมอว่า ~ / .emacs จับคู่กับอะไร


2
ตอนนี้ฉันสังเกตเห็นว่า Windows จะตั้งค่าHOMEตัวแปรสภาพแวดล้อมแตกต่างกันไปขึ้นอยู่กับว่าฉันเริ่มต้นrunemacs.exeอย่างไร ถ้าผมเริ่มต้นจากภายใน Explorer ให้HOMEมีการตั้งค่าC:\Documents and Settings\usernameแต่ถ้าผมเริ่มต้นจากเมนู Start, คือHOME C:\Documents and Settings\username\Application Dataแปลก.
ซ่อมรถ



0

ใน Windows 8.1 ถ้า Emacs เริ่มต้นจากWindows Explorerทางลัดหรือจากคอนโซลcmdจะใช้C: \ Users \ <USER> \ AppData \ Roaming.emacs init ไฟล์ เมื่อฉันเริ่มต้น Emacs จาก PowerShell ลักษณะ Emacs สำหรับแฟ้ม init ในC: \ Users \ <user>โฟลเดอร์ การแก้ไขปัญหานี้คือการตั้งค่าหน้าแรกตัวแปรสภาพแวดล้อมของผู้ใช้ (Control Panel \ ระบบและความปลอดภัย \ ระบบ> ระบบขั้นสูงการตั้งค่า> Advanced-> ตัวแปรสภาพแวดล้อม) เพื่อC: \ Users \ <ผู้ใช้> หลังจากการเปลี่ยนแปลงนี้ไม่ว่าฉันจะเริ่ม Emacs อย่างไรมันก็ใช้ไฟล์ init เดียวกัน (ดูคำตอบที่ยอมรับของคำถามนี้)


0

สำหรับ WIndows7 & Emacs26.3:


หากHOMEตั้งค่าสภาพแวดล้อม.emacsไฟล์ควรจะอยู่ในโฟลเดอร์นั้น

มิฉะนั้นควรอยู่ในc:\.


ในทั้งสองกรณีถ้า.emacsไม่มี_emacsควรใช้

เนื่องจากเราไม่สามารถสร้าง.emacsไฟล์ตามกฎการตั้งชื่อไฟล์ของ windows ได้ (แต่เราสามารถดาวน์โหลดหรือคัดลอกจากที่อื่นได้)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.