โหมดแบตช์ Emacs ไม่รู้จักไฟล์ org ใน osx

ฉันกำลังพยายามใช้ emacs -batch เพื่อสร้างไฟล์ csv ที่แสดงรายการสิ่งที่ต้องทำทั้งหมดในไฟล์โหมดองค์กรของฉัน มันใช้งานได้ดีบนกล่อง linux ของฉัน แต่ฉันไม่สามารถทำให้มันทำงานใน OSX ได้

นี่คือคำสั่งที่ฉันใช้:

emacs -batch -l ~/.emacs org-mode -eval '(org-batch-agenda-csv "t")'

OSX ไม่รู้จัก org-batch-agenda-csv แต่จะรู้จักเวอร์ชันที่ไม่ใช่ csv:

emacs -batch -l ~/.emacs org-mode -eval '(org-batch-agenda "t")'

อย่างไรก็ตาม สิ่งนี้ยังคงใช้งานไม่ได้ กลับมาพร้อมกับคำตอบดังนี้

Agenda file ~/projects.org is not in `org-mode'

ฉันคิดว่าฉันได้จำกัดปัญหารากให้แคบลง Emacs และ emacs เมื่อเปิดโดยเทอร์มินัลทำงานแตกต่างกัน Emacs จะจดจำไฟล์องค์กรของฉันโดยอัตโนมัติ แต่หากฉันเปิดไฟล์เหล่านั้นในเทอร์มินัล emacs จะเริ่มทำงานในโหมดพื้นฐาน ฉันคิดว่าถ้าฉันสามารถรับโหมดเทอร์มินัล emacs เพื่อจดจำไฟล์ org อัตโนมัติได้ ปัญหาก็จะหมดไป น่าแปลกที่ดูเหมือนว่าจะไม่มีปัญหาในการจดจำไฟล์ประเภทอื่นโดยอัตโนมัติ เกือบจะเหมือนกับว่าไม่ได้อ่านไฟล์ .emacs ของฉันจริงๆ

ฉันดูเหมือนจะไม่พบสิ่งใดผ่าน Google หวังว่าฉันไม่ใช่คนเดียวที่มีปัญหานี้

ขอขอบคุณพอยน์เตอร์ใด ๆ ที่คุณสามารถช่วยฉันได้

--รัส


person Rusty    schedule 19.10.2016    source แหล่งที่มา
comment
คุณใช้ Emacs เวอร์ชันใด? โดยปกติบน OS X emacs จะเปิดตัว Emacs 22 ซึ่งไม่รองรับโหมดองค์กร ให้ลองใช้ไบนารีของ Emacs ภายใน Emacs.app แทน   -  person Lindydancer    schedule 19.10.2016
comment
ใช่! (emacs-version) แสดงเวอร์ชัน 22 ในเทอร์มินัล แต่เป็น 24 ถ้าฉันใช้นอกเทอร์มินัล แต่รองรับโหมดองค์กร ฉันแค่ต้องเรียก org-mode ด้วยตนเอง มันไม่รับรู้โดยอัตโนมัติ   -  person Rusty    schedule 20.10.2016


คำตอบ (1)


ขอบคุณ Lindydancer ดังนั้นด้วยเหตุผลบางประการเทอร์มินัล OSX จึงเปิด emacs เวอร์ชัน 22 แทนที่จะเป็นเวอร์ชัน 24 คำสั่งเดียวกันนี้ใช้งานได้ดีหากเรียกว่าเป็นไฟล์ไบนารีจากไฟล์ Applications

/Applications/Emacs.app/Contents/MacOS/Emacs -batch -l ~/.emacs org-mode -eval '(org-batch-agenda "t")'

ขอบคุณสำหรับความช่วยเหลือ!

person Rusty    schedule 20.10.2016
comment
ตำแหน่งเริ่มต้นสำหรับ Emacs เวอร์ชันเก่า/ล้าสมัยที่มาพร้อมกับ OSX อยู่ภายใน /usr/bin ดังนั้นหากคุณโทรเพียง emacs จากเทอร์มินัล คุณจะได้รับตำแหน่งนั้น เพื่อความสะดวก คุณอาจต้องการตั้งค่าคำสั่ง นามแฝง เพื่อให้เรียกการติดตั้ง Emacs ที่ต้องการได้อย่างง่ายดาย - person lawlist; 21.10.2016