มีปัญหาบางอย่างกับ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 ของคุณ