Пакетный режим 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.

Через гугл ничего не могу найти. Надеюсь, я не единственный человек, у которого есть эта проблема.

Цените любые указатели, с которыми вы можете мне помочь.

-- Русь


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-версия) показывает версию 22 в терминале, но 24, если я использую ее вне терминала, но она поддерживает режим организации. Мне просто нужно вручную вызвать org-mode. Он не распознает его автоматически.   -  person Rusty    schedule 20.10.2016


Ответы (1)


Спасибо Линдидансер. Итак, по какой-то причине терминал OSX открывает emacs версии 22 вместо версии 24. Та же команда прекрасно работает, если она вызывается как двоичный файл из файла приложений.

/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 из терминала, вы получите его. Для удобства вы можете настроить команду alias, чтобы легко вызывать предпочтительную установку Emacs. - person lawlist; 21.10.2016