주요 모드를 처음로드 할 때 자동으로 열등한 프로세스를 실행하는 방법은 무엇입니까?


9

회사와 함께 Python (또는 Matlab)과 함께 작업한다고 가정 해 봅시다. 열등한 프로세스 회사 메시지없이

Completion needs an inferior Python process running

그러나 열등한 프로세스를 자동으로 실행하는 확실한 솔루션

 (add-hook 'python-mode 'run-python)

.py 파일을 열 때마다 새로운 파이썬 프로세스를 실행합니다 (Matlab에서 더 비쌉니다)

메이저 모드가 처음 실행될 때만 실행되는 후크가 있습니까? 아니면 파이썬 / matlab 열등한 프로세스가 이미 실행 중인지 감지하는 방법이 있습니까? 아니면 주요 모드로 열등한 프로세스를 자동으로 실행하는 문제를 한 번만 해결하는 다른 방법이 있습니까?

답변:


14

참고로, 일부 모드는 하나의 열등한 프로세스 만 엽니 다. 예를 들어, run-python아직 열등한 프로세스가 실행되고 있지 않은 경우에만 열등한 프로세스를 엽니 다. 당신이 제안한 것은 run-python실제로 당신이 원하는 것을합니다.

다른 모드 (Matlab?)의 경우 다음과 같이 자체 연결을 해제하는 기능을 사용할 수 있습니다.

(defun run-python-once ()
  (remove-hook 'python-mode-hook 'run-python-once)
  (run-python))

(add-hook 'python-mode-hook 'run-python-once)

Emacs 24.5 이상 run-python에서는 필수 CMD인수를 취 하므로 해결책은 다음과 같습니다.

(defun run-python-once ()
  (remove-hook 'python-mode-hook 'run-python-once)
  (run-python (python-shell-parse-command)))

(add-hook 'python-mode-hook 'run-python-once)

run-python함수가 필요한 인수를 취하는 것 같습니다 : (run-python CMD &optional DEDICATED SHOW). 대화식으로 잘 작동하지만이 후크가 실행될 때 Wrong number of arguments오류가 발생합니다.
gsingh2011

1
고맙게도,이 주장은 Emacs 25에서는 선택적이지만 24.5에서는 그렇지 않습니다. 나는 Emacs 24.5
bmag
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.