มีปัญหาบางอย่างกับPATHการตั้งค่าบน Emacs ที่ส่งผลกระทบต่อสภาพแวดล้อม Haskell ของฉัน:
ฉันใช้ ZSH และเมื่อฉันไปที่บรรทัดคำสั่งและการโทรecho $PATHมันจะคืนค่า:/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
นี่มาจาก.zprofileการกำหนดค่าที่ฉันมี:
# Set the list of directories that Zsh searches for programs.
path=(
~/Library/Haskell/bin
/usr/local/{bin,sbin}
$path
)
ดังนั้นจากบรรทัดคำสั่งเมื่อฉันโทรwhich cabalฉันได้รับ:/Users/g/Library/Haskell/bin/cabal
เมื่อฉันเริ่ม Emacs และไปที่shellและโทรwhich cabalฉันได้รับ: /usr/bin/cabalซึ่งทำให้ฉันมีปัญหาเนื่องจากเป็นรุ่นที่แตกต่าง
เมื่อฉันตรวจสอบecho $PATHจาก Emacs shellฉันเห็น:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
ฉันไม่รู้ว่าPATHจะแตกต่างอย่างไรในโลก...
ใครรู้วิธีทำให้ZSHเชลล์และ Emacs ของฉันเห็นด้วยในสิ่งเดียวกันPATH? ฉันสงสัยว่าเป็นสิ่งที่ควบคุมว่าcabalจะโหลดจากที่ใด
UPDATE : การเรียกใช้echo $SHELLจาก Emacs จะพิมพ์ออกมา:/bin/zsh
UPDATE 2 : นี้คือบนOSX
UPDATE 3 : ฉันพยายามใช้โมดูลexec-path-from-shellแล้ว แต่มันไม่ทำงาน ฉันยังคงมีปัญหาเดียวกันและเป็นผลข้างเคียงมันทำให้สีชุดรูปแบบเทอร์มินัลของฉันยุ่ง :(
อัปเดต 4 : ฉันได้ติดตั้ง Emacs ผ่านbrew install --cocoa --srgb emacsและฉันเรียกใช้ emacs ที่เชื่อมโยงด้วยวิธีนี้:
~ ❯❯❯ which emacs
/usr/local/bin/emacs
~ ❯❯❯ l /usr/local/bin/emacs
lrwxr-xr-x 1 g admin 30B 29 Jan 18:34 /usr/local/bin/emacs -> ../Cellar/emacs/24.4/bin/emacs
~ ❯❯❯ l /usr/local/Cellar/emacs/24.4/bin/emacs
-r-xr-xr-x 1 g admin 87B 29 Jan 18:34 /usr/local/Cellar/emacs/24.4/bin/emacs
chsh...กลับในวันที่จะเปลี่ยนเปลือกเริ่มต้นของฉัน
~/.profileหรือ/etc/profileจากนั้น
~/.zshenvซึ่งจะมีแหล่งมาอย่างต่อเนื่อง แต่เชลล์เริ่มต้นขึ้น (แบบโต้ตอบกับแบบไม่โต้ตอบ) หากexec-path-from-shellสีของชุดรูปแบบเทอร์มินัลของคุณยุ่งเหยิงคุณสามารถตั้งค่าexec-path-from-shell-argumentsเป็นnilก่อนเรียกexec-path-from-shell-initializeเพื่อให้แน่ใจว่าไม่ได้รันส่วนโต้ตอบของการกำหนดค่า zsh ของคุณ