การเปลี่ยนโฟลเดอร์เริ่มต้นใน Emacs


107

ฉันค่อนข้างใหม่สำหรับ Emacs และฉันพยายามหาวิธีเปลี่ยนโฟลเดอร์เริ่มต้นสำหรับการC-x C-fเริ่มต้นระบบ ตัวอย่างเช่นเมื่อฉันโหลด Emac ครั้งแรกและกดC-x C-fโฟลเดอร์เริ่มต้นคือC:\emacs\emacs-21.3\binแต่ฉันอยากจะเป็นเดสก์ท็อป ฉันเชื่อว่ามีบางวิธีในการปรับแต่ง.emacsไฟล์เพื่อทำสิ่งนี้ แต่ฉันยังไม่แน่ใจว่าคืออะไร

อัปเดต: มีวิธีแก้ไขปัญหาสามวิธีที่ฉันพบว่าใช้งานได้อย่างไรก็ตามฉันเชื่อว่าโซลูชันที่ 3 เป็น Windows เท่านั้น

  • โซลูชันที่ 1: เพิ่ม(cd "C:/Users/Name/Desktop")ลงใน.emacsไฟล์

  • โซลูชันที่ 2: เพิ่ม(setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")ลงใน.emacsไฟล์

  • โซลูชันที่ 3: คลิกขวาที่ปุ่มลัด Emacs ตีคุณสมบัติและเปลี่ยนฟิลด์ start in เป็นไดเร็กทอรีที่ต้องการ

คำตอบ:


84

คุณไม่ได้พูดอย่างนั้น แต่ดูเหมือนว่าคุณกำลังเริ่ม Emacs จากทางลัดของ Windows

ไดเร็กทอรีที่คุณเห็นด้วย cx cf คือ cwd ในเงื่อนไข Emacs คือdefault-directory(ตัวแปร)

เมื่อคุณเริ่ม Emacs โดยใช้ช็อตคัท MS Windows default-directoryตอนแรกจะเป็นโฟลเดอร์ (ไดเร็กทอรี) ที่ระบุในฟิลด์ "Start In" ของคุณสมบัติทางลัด คลิกขวาที่ทางลัดเลือกPropertiesและพิมพ์เส้นทางไปยังเดสก์ท็อปของคุณในStart Inฟิลด์

หากคุณใช้ Emacs จากบรรทัดคำสั่งให้default-directoryเริ่มต้นเป็นไดเร็กทอรีที่คุณเริ่มต้น Emacs (cwd)

วิธีนี้ดีกว่าการแก้ไขไฟล์. macs ของคุณเนื่องจากจะช่วยให้คุณมีทางลัดมากกว่าหนึ่งรายการที่มีไดเร็กทอรีเริ่มต้นมากกว่าหนึ่งไดเร็กทอรีและช่วยให้คุณมีลักษณะการทำงานของบรรทัดคำสั่งตามปกติของ Emacs ได้หากคุณต้องการ

CWD = ไดเรกทอรีการทำงานปัจจุบัน = PWD = ไดเรกทอรีการทำงานปัจจุบัน มันสมเหตุสมผลกว่าในบรรทัดคำสั่งมากกว่าใน GUI


ใช่ฉันใช้ emac บน windows
Anton

5
สิ่งนี้ใช้ได้กับ MacOS ด้วย ฉันเพิ่มสิ่งนี้ใน. emacs ของฉัน: (setq default-directory (concat (getenv "HOME") "/"))
vy32

และถ้าคุณต้องการให้ Emac เริ่มต้นใน Dired ของไดเร็กทอรีนั้นนอกจากการใส่ลงในStart Inฟิลด์แล้วให้เพิ่มที่ท้ายTargetฟิลด์หลังจากเว้นวรรคอย่างน้อยหนึ่งช่องโดยใส่ไว้ระหว่างเครื่องหมายคำพูดคู่ ( ") เช่น: "d:\path\to\the\folder".
ดึง

49

ฉันคิดว่าบรรทัดที่คุณต้องเพิ่มใน. emac ของคุณคือ

(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/" )

Emacs จะเริ่มในเดสก์ท็อปของคุณด้วยวิธีนั้นเว้นแต่คุณจะเปิดไฟล์ไว้ โดยปกติจะเริ่มต้นในไดเร็กทอรีเดียวกับไฟล์ในบัฟเฟอร์ปัจจุบันของคุณไม่เช่นนั้น


26

คุณสามารถพิมพ์คำสั่ง emacs 'cd' (Mx cd) เพื่อเปลี่ยนโฟลเดอร์เริ่มต้นเป็นการปิด



6

โฟลเดอร์เริ่มต้นจะเหมือนกับโฟลเดอร์ที่ใช้งานได้ในปัจจุบันสำหรับบัฟเฟอร์กล่าวคืออาจแตกต่างกันไปสำหรับทุกไฟล์ที่คุณใช้งาน บอกว่าไฟล์ที่คุณกำลังทำงานกับตั้งอยู่แล้วไดเรกทอรีการทำงานสำหรับบัฟเฟอร์ที่จะเริ่มต้นด้วยการเป็นC:\dir_a C:\dir_aคุณสามารถเปลี่ยนสิ่งนี้M-x cdและพิมพ์ไดเร็กทอรีใดก็ได้ที่คุณต้องการให้เป็นค่าเริ่มต้นแทน (และโดยค่าเริ่มต้นฉันหมายถึงรายการที่จะปรากฏขึ้นเมื่อคุณทำC-x C-f)

หากคุณเริ่ม emac โดยไม่เปิดไฟล์คุณจะพบว่า*scratch*บัฟเฟอร์เปิดอยู่ หากคุณเริ่มต้น emac จากทางลัดของ Windows ไดเร็กทอรีการทำงานจะเหมือนกับที่ระบุไว้ในคุณสมบัติทางลัด หากคุณเริ่มต้นจากบรรทัดคำสั่งมันจะเป็นไดเร็กทอรีที่คุณเริ่มต้น คุณยังคงสามารถเปลี่ยนไดเร็กทอรีเริ่มต้นM-x cdนี้ได้จาก*scratch*บัฟเฟอร์

ในที่สุดคุณก็ทำได้ตามที่ Vadim แนะนำและวางไว้

(cd "c:/dir_a/")

ใน.emacsไฟล์ของคุณเพื่อทำให้ไดเร็กทอรีนั้นเป็นค่าเริ่มต้นไม่ว่าคุณจะเริ่มต้น emacs อย่างไร


4

ในขณะที่คุณใช้ Windows คุณสามารถทำได้โดยใช้ทางลัด

สร้างทางลัดไปยังC:\emacs\emacs-21.3\bin\runemacs.exe. แก้ไขคุณสมบัติของช็อตคัทและเปลี่ยนค่าStart In:เป็นอะไรก็ได้ที่คุณต้องการให้เป็นไดเร็กทอรีเริ่มต้นของคุณ


4

ฉันใช้ emacs 22.2.1 ใน Windows XP และได้รับความช่วยเหลือจากคำตอบด้านบนเพื่อรับคำตอบในมินิบัฟเฟอร์ที่ฉันต้องการคำสั่ง Cx Cf ตอนแรกฉันได้รับ "Find file: C: \ Program Files \ emacs \ bin /" เหมือน Anton ฉันตั้งค่า HOME เป็น "C: \ Documents and settings \ USER NAME \ My Documents" คำตอบสำหรับ Cx Cf ที่ฉันต้องการในมินิบัฟเฟอร์คือ "ค้นหาไฟล์: ~ /" ด้วยการเพิ่ม (setq default-directory "C: / Documents and Settings / USER NAME / My Documents") ลงในไฟล์. emacs ของฉันฉันสามารถรับคำตอบ "ค้นหาไฟล์: C: \ Documents and settings \ USER NAME \ My Documents / "ซึ่งทำงานเหมือนกับ" ค้นหาไฟล์: ~ / " อย่างไรก็ตามฉันสังเกตเห็นอีกประเด็นหนึ่ง "ปรับแต่ง Emacs" ภายใต้ "ตัวเลือก" ทำให้ฉันสามารถยับยั้งหน้าจอเริ่มต้นได้ ตอนนี้เมื่อฉันเปิด emacs ฉันจะไปที่บัฟเฟอร์รอยขีดข่วนทันที เมื่อฉันพิมพ์ Cx Cf ในบัฟเฟอร์รอยขีดข่วนฉันจะได้รับคำตอบที่ต้องการ


+1 สำหรับการกล่าวถึงการยับยั้งหน้าจอเริ่มต้น ฉันพบว่าสิ่งนี้เป็นกุญแจสำคัญในระบบ Windows 10 ของฉัน ฉันโพสต์คำตอบของฉันในคำถามที่เกี่ยวข้องstackoverflow.com/a/38435697/823636
Rob_before_edits

1

ฉันได้เพิ่มทางลัดของฉัน (ใน Gnome, Linux) เรือท้องแบนซึ่งเป็นชื่อไฟล์จำลองเปล่าและฉันระบุไดเร็กทอรี เนื่องจากอีแมคของฉันมีค่าเริ่มต้นเป็น "บ้าน" ฉันจึงพูดว่า:

/ เดสก์ท็อป / blank_file

และเปิดไฟล์ชื่อ "blank_file"

นอกจากนี้ยังย้ายไดเร็กทอรีการทำงานปัจจุบันสำหรับเซสชัน emacs ไปยังเดสก์ท็อป

ถ้าฉันบังเอิญใส่ข้อมูลใน "blank_file" ให้บันทึกไว้แน่นอนฉันได้บันทึกสิ่งนั้นแล้ว ซึ่งอาจจะทำให้รำคาญหรืออาจจะเป็นเรื่องดีก็ได้!


1

ในการเปลี่ยนไดเร็กทอรีเริ่มต้นเป็น DESKTOP ใน Dired และใส่เชลล์ไว้ใน ~ / .emacs ของคุณ:

;; สิ่งนี้ใช้ได้กับ Windows XP
(setq default-directory (ต่อ "C: \ Documents and Settings \ MY_ACCOUNT \ DESKTOP \"))


0

ใน Windows 8 จะทำงานเพื่อสร้างทางลัดในเดสก์ท็อปและเปลี่ยนคุณสมบัติ 'Start In:' สำหรับทางลัด

ตอนนี้ฉันรันโปรแกรม emacs-23.3 \ bin \ addpm.exe ตามที่แนะนำและหน้าจอ Windows-8 (สิ่งประดิษฐ์ที่น่ากลัวจาก Microsoft) ปรากฏไอคอนลิงก์ไปยัง Emacs แต่คุณต้องเปลี่ยนคุณสมบัติ 'Start In' อีกครั้ง (แตกต่างจากในเดสก์ท็อป) เพียงคลิกขวาเลือกในแถบด้านล่าง "เปิดตำแหน่งไฟล์" (หรือที่คล้ายกันฉันทำในภาษาของฉัน) และคุณจะถูกนำไปที่โฟลเดอร์ด้วยทางลัดใหม่ซึ่งคุณสามารถ (ต้อง) เปลี่ยน คุณสมบัติ 'เริ่มต้นใน:'

เกี่ยวข้องเล็กน้อย แต่ในความเป็นจริงง่ายมาก


0

เนื่องจากสิ่งที่น่ารำคาญที่สุดคือการมี windows Emacs ทิ้งคุณลงใน system32 เมื่อคุณใช้ทางลัด แต่ต้องการให้ทุกกรณีทำงานได้เพียงใช้ elisp เล็กน้อย ...

(เมื่อ (สตริง <"C: \ WINDOWS \ system32" default-directory) (setq default-directory "~ /"))

ดังนั้นจะดีฟอลต์เฉพาะโฮมไดเร็กทอรีของคุณเมื่อคุณสิ้นสุดในระบบ ข้อเสียเปรียบเพียงประการเดียวคือหากคุณต้องการเริ่มต้น emac ใน system32 ...

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