ให้ Emacs load ค่า PATH Environment Variables

ผมเป็น Programmer แน่นอนว่าต้องติดตั้งโปรแกรมหลายตัวที่เป็นเครื่องไม้เครื่องมือในการทำงาน แล้วทีนี้ก็มักจะตั้งค่าตัวแปร Environment Variables สำหรับโปรแกรมเหล่านั้น หลักๆแล้วก็ ตั้งค่าในตัวแปร PATH เพื่อให้เรียกใช้งานโปรแกรมได้

พอใช้ Emacs ที่เป็นแบบ GUI มันจะไม่ load ค่าที่ผมตั้งไว้ใน shell มาให้ด้วย ผมหาวิธีที่จะให้มัน load แล้วก็ไปเจอที่ Package นึงที่ช่วยได้เรียกว่า exec-path-from-shell ซึ่งผมก็ติดตั้งโดยใช้ Package Manager (แบบที่เขียนวิธีใช้ไว้ที่นี่ การใช้งาน Emacs Package Manager)

หลังจากติดตั้งแล้ว เราต้องตั้งค่าเพิ่มที่ไฟล์ .emacs ที่อยู่ที่ Home directory ดังนี้

(when (memq window-system '(mac ns))
(exec-path-from-shell-initialize))

ซึ่งคำสั่งที่ใช้จริงๆคือ exec-path-from-shell-initialize แต่ว่าผมได้ใช้ (when (memq window-system ‘(mac ns)) เพื่อเช็คก่อนว่า ผมเปิด Emacs แบบ GUI อยู่หรือเปล่า ถ้าใช่ถึงจะเรียก เพราะถ้าเปิดผ่าน Shell มันก็จะโหลดได้อยู่แล้วไม่ต้องสั่งเพิ่ม

ซึ่งการตั้งค่าที่เห็น มันจะโหลดเฉพาะตัวแปร PATH ให้ ถ้าเราอยากได้ตัวแปรอื่นๆด้วย ให้เราใช้อีกคำสั่ง เพื่อให้มัน copy มาให้คือ exec-path-from-shell-copy-env ตัวอย่างเช่นผมอยากได้ตัวแปร GOROOT และ GOPATH ด้วย config ของผมเลยเป็นแบบนี้

(when (memq window-system '(mac ns))
(exec-path-from-shell-initialize)
(exec-path-from-shell-copy-env "GOROOT")
(exec-path-from-shell-copy-env "GOPATH"))

เท่านี้ผมก็ได้แล้วครับ

Like what you read? Give Weerasak Chongnguluam a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.