ฉันได้เห็นตัวอย่างออนไลน์ที่ผู้คนเพิ่มเส้นทางไปยังเส้นทางเริ่มต้นใน Emacs ด้วย:
(add-to-list 'exec-path "/usr/local/bin/")
ฉันใหม่สำหรับ Elisp และฉันคิดว่าฉันเข้าใจว่าข้อความข้างต้นทำอะไร แต่ฉันมีคำถามสองสามข้อ:
ในสิ่งที่สั่งซื้อไม่ค้นหา Emacs ผ่านเส้นทางการดำเนินการหรือไม่ ตัวอย่างเช่นพิจารณาถึงค่าของ
$PATH
(env. variable) เลย (และถ้าเป็นเช่นนั้นก่อนหรือหลังexec-path
?)ฉันจะย่อหน้าเส้นทางดังกล่าวหลาย ฉันสามารถต่อพวกเขาต่อกันได้ไหม? เช่น
(add-to-list 'exec-path "PATH1", "PATH2")
หรือฉันควรทำ:
(add-to-list 'exec-path "PATH1:PATH2:PATH3")
ฉันยังพบแพคเกจที่น่าสนใจนี้บน GitHub: exec เส้นทางจากเปลือก ทำไมจึงจำเป็นต้องมีแพ็คเกจสำหรับ?
แรงจูงใจ
เคยพบว่าคำสั่งทำงานในเชลล์ของคุณ แต่ไม่ใช่ใน Emacs?
สิ่งนี้เกิดขึ้นมากมายใน OS X ซึ่งอินสแตนซ์ Emacs เริ่มต้นจาก GUI สืบทอดชุดตัวแปรสภาพแวดล้อมเริ่มต้น
ไลบรารีนี้ใช้งานได้เพื่อแก้ไขปัญหานี้โดยการคัดลอกตัวแปรสภาพแวดล้อมที่สำคัญจากเชลล์ของผู้ใช้: มันทำงานโดยขอให้เชลล์ของคุณพิมพ์ตัวแปรที่สนใจแล้วคัดลอกลงในสภาพแวดล้อมของ Emacs
C-h v exec-path
ใช้คู่มือ (Emacs และ Elisp) ในคู่มือi exec-path
นำคุณไปสู่คำอธิบายที่เป็นประโยชน์ ถาม Emacs ก่อน - คุณจะไม่เสียใจที่คุณทำ
(describe-function 'add-to-list)
(C-h f
) จะให้เอกสารแก่คุณสำหรับadd-to-list
ฟังก์ชั่นรวมถึงลิงก์ไปยังแหล่งข้อมูล นอกจากนี้ยังมี(describe-variable 'exec-path)
(C-h v
) สิ่งนี้ไม่ได้หมายถึงการแสดงความคิดเห็น RTFM เอกสารเหล่านี้ไม่ตอบคำถามทั้งหมดที่คุณระบุไว้สิ่งที่มีประโยชน์