Фильтрация результатов от запуска start-process в emacs / elisp - PullRequest
2 голосов
/ 25 августа 2010

У меня есть следующий код для запуска python и получения результата в буфере scratch .

(defun hello ()
  "Test, just prints Hello, world to mini buffer"
  (interactive)
  (start-process "my-process" "*scratch*" "python" "/Users/smcho/Desktop/temp/hello.py")
  (message "Hello, world : I'm glad to see you"))
(define-key global-map "\C-ck" 'hello)

Код Python выглядит следующим образом.

if __name__ == "__main__":
    print "hello, world from Python"

Использование Cc k дает мне следующий код в scratch буфере.

hello, world from Python

Process my-process finished

Мне не нужна последняя часть, так как она не из питона.Есть ли способ не получить эту строку или эффективно удалить ее?

Добавлено

Трей помог мне получить ответ.

(defun hello ()
  "Test, just prints Hello, world to mini buffer"
 (interactive)
  (insert (shell-command-to-string "python /Users/smcho/Desktop/temp/hello.py"))
 (message "Hello, world : I'm glad to see you"))
(define-key global-map "\C-ck" 'hello)

1 Ответ

3 голосов
/ 25 августа 2010

Вы пробовали

(shell-command-to-string "/Users/smcho/Desktop/temp/hello.py")

Это вернет строку, которую вы можете вставить в буфер scratch следующим образом:

(with-current-buffer "*scratch*"
  (insert (shell-command-to-string "/Users/smcho/Desktop/temp/hello.py")))
...