2013-12-23 2 views
2

5 초마다 쉘 명령을 실행하는 emacs 함수를 작성하려고합니다. 그러나 일시 중지가 작동하지 않습니다. 여기에 내가 가진 무엇 :sleep-for while 루프가 무시됩니다.

(while '(test) 
    (insert (format "echo hello")) 
    (comint-send-input)) 
    (sleep-for 0 5000) 

나는 잠이 리스프의 기능 평가와 관련된 이유로 무시 용의자. 각 명령 평가 후에 일시 중지를 발생시키는 방법에 대한 조언이 있습니까?

+2

아마도'(comint-send-input)'은'sleep-for'에서 마지막 paren을 훔칠 것입니까? – mishadoff

+0

'sleep-for' 대신'run-with-timer'를 사용해보십시오. – Tobias

+0

예, 괄호를 움직입니다. 'sleep-for'를'comint-send-input' 전에 ('dunno ') 대신에 넣으십시오. – Drew

답변

2

의견에서 언급했듯이 문제는 괄호로 표시됩니다.

또한 sit-for*scratch*에 넣었으며 에 비해 매끄럽게 처리됩니다.

(while 1 
    (insert "hello") 
    (sit-for 1)) 

하지만 둘 다 이맥스를 잠그기 때문에이 종류의 작업에주의해야합니다.

async 패키지 또는 이와 유사한 것을 사용하는 것을 고려하십시오.

+0

+1, 특히 비동기 권장 사항입니다. –

관련 문제