2012-03-22 2 views
2

this question을 기반으로 이멕스의 파이썬 쉘에서 에코 문제를 해결하는 방법을 발견했습니다. 내가하고 싶은 일은 .emacs 파일에 이것을 추가하여 자동으로 실행되도록하는 것입니다.Emacs Python : Echoing, Hooks and Org-mode

(defun python-startup() 
    (setq comint-process-echoes t)) 

(add-hook 'py-shell-hook 'python-startup) 

파이썬 쉘 (M-x python-shell)을 시작하면 이것이 작동하지 않습니다.

Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 22 
22 
22 

나는 M-: (python-startup)으로이 기능을 실행 한 후 반향 동작은 중지됩니다.

>>> 22 
22 

내가 후크를 잘못 설정하고 있는지, 아니면 다른 후크를 사용해야하는지 잘 모르겠습니다. 부수적으로, 어떤 기능을 위해 어떤 후크가 호출되는지 어떻게 알 수 있습니까? 최종 목표는 :results output :session을 org-mode에서 사용할 수 있도록하는 것입니다. 그래서 모든 명령을 결과로 출력하지 않고 파이썬 코드를 통합 할 수 있습니다. 나는 내가 후크를 고쳐 주면 그것이 내가 할 행동이지만, 이것이 사실인지 실제로 알지는 못한다고 생각합니다.

+0

를 사용하여 대화 형 python-shell를 호출해야하는 경우 (23.1.1) 및 Python 2.7.1의 경우 셸은 기본적으로 올바르게 에코됩니다. 당신이 정의한대로'comint-process-echoes'를 설정할 때, 반향 행동은 멈춘다. 위와 같은 내용의 복제물을 재현 할 수 없으므로 버그가 다른 곳에 있다고 의심됩니다. – MrGomez

답변

3

이것에 대한 간단한 조사는 python-mode (내 이맥스에서 발견됨)이 py-shell-hook이 아니므로 당연히 거기에 넣은 것이 아무것도 실행되지 않는다는 것을 보여줍니다.

내가 python-mode으로 보았을 때, 실행되는 후크가 없으므로 운이 좋지 않습니다.

가장 좋은 단지 exmaple를 들어, 자신의 명령을 만들려면 :

(defun alex-python-shell() 
    "Start a python shell my way." 
    (interactive) 
    (python-shell) 
    (python-startup)) 

당신이 이맥스의 내 버전

(call-interactively 'python-shell) 
+0

흠, 파이썬을 직접 시작하기위한 좋은 해결 방법입니다. 필자는 궁금하다. 쉘을위한 것이 아니라 .py 파일을보기위한'python-mode'인가? 그렇다면, 나는 그것이 py-shell-hook 또는 이와 비슷한 것을 기대하지 않을 것입니다. 그럼에도 불구하고 어딘가에있는 고리 목록을 알고 있습니까? – alexplanation

+0

죄송합니다. python-shell에 후크가 없습니다. 그냥 : M-x find-function RET python-shell RET하고 코드에서 실행되는 후크를 찾는다. 쉬운 - 산들 바람. – Eric