2011-12-07 2 views
0

열등 파이썬 인터프리터의 현재 작업을 종료하는 방법에 대한 기술적 인 질문이 있습니다.python의 하위 키 - 파이썬 모드 C-Z 키를 emacs가 아닌 quit으로 다시 종료합니다.

일반적으로 일반 명령 셸에서 인터프리터를 실행하면 C-z가 속임수를 사용합니다. 이것은 python exit를 호출하고 stop을 실행중인 모든 것을 호출합니다. 통역사 프로세스는 아직 살아 있습니다.

그러나 emacs에서 하위 쉘에서 C-z를 누르면 실행 취소 명령이 실행됩니다 (CUA 모드 사용). CUA를 비활성화하면 suspend-emacs 명령이 실행됩니다. 내가 원하는 것은 C-z를 완전히 언 바인드하거나 C-z를 재 매핑하여 일반 쉘에서와 같이 실제로 파이썬에 중단 신호를 보내도록하는 것입니다. 내가 이러한 잔인한 방법으로 시도 : (글로벌 해제 키 "\ Cz에") ([? \ Cz에] 글로벌 해제 키)를

그들의

없음 제대로 작동하고 Cz에 여전히 취소로 붙어 또는 emacs를 일시 중지/일치시킵니다.

정규 신호도 시도했습니다. 하위 쉘로 보낼 수있는 유일한 신호는 QUIT이며 이는 인터프리터와 해당 프로세스 (C-C C-)를 효과적으로 종료하므로 바람직하지 않습니다. 신호 STOP이 작동하지 않습니다.

아이디어가 있으십니까?

답변

1

하위 프로세스를 실행하는 경우 일반적으로 C- 접두사가 붙은 제어 시퀀스를 보낼 수 있습니다. 이를 염두에두고

C-c C-z 

내게는 comint-stop-subjob입니다.

+0

C-c C-z는 나에게 도움이되지 않지만 C-C C-c가 작업을 중단하고 통역사를 계속 사용함을 깨달았습니다. 내가 전에는 이것을 보지 못했던 이유는 파이썬 바인딩을 사용하여 C/C++ 모듈을 실행하고 있었고 "중단"은 즉시 발생할 수 없었기 때문입니다. 하나의 C++ 모듈이 실행을 마칠 때까지 기다려야했습니다. – octi