2014-01-10 4 views
2

Я бы хотел, чтобы emacs обрабатывал некоторые трудоемкие задачи без блокировки ввода. Для этой цели я попытался (где вставка предназначена для заменяется трудоемкой задачей)Как вызвать процесс для запуска emacs внутри emacs с параметрами

(call-process "emacs" nil 0 nil "--eval=(insert \"a\")") 

Это работает. Однако, когда я хочу передать параметр кадра, он не работает:

(call-process "emacs" nil 0 nil "--geometry 30x5") 

Emacs говорит: «Неизвестный параметр` --geometry 30x5».

Любые идеи использовать call-process для запуска другого сеанса emacs с уточненным размером кадра? Благодаря!

ответ

6

При использовании call-process каждый аргумент запускаемой программы должен быть в отдельной строке - пробелы не считаются разделителями. Ваш первый пример работает, потому что это единственный аргумент, но второй пример требует два параметра и должно быть написано так:

(call-process "emacs" nil 0 nil "--geometry" "30x5") 
6

Это звучит, как вы могли бы хотеть async.el, который действительно запустить дополнительные экземпляры из Emacs для выполнения из указанной обработки.

(хотя я не уверен в вашей потребности в видимой раме.)

Перейдите по ссылке для получения подробной информации о всех других функций на предложение, но самый простой пример использования данной (который, казалось, что это может быть применимо):

(async-start 
    ;; What to do in the child process 
    (lambda() 
    (message "This is a test") 
    (sleep-for 3) 
    222) 

    ;; What to do when it finishes 
    (lambda (result) 
    (message "Async process done, result should be 222: %s" result))) 
+0

Большое спасибо! Очень интересно знать этот пакет! Я дам ему попробовать. –

Смежные вопросы