문제

에서 다음과 같은 기능에 emacs Lisp,

(defun show-life ()
  (interactive)
  (switch-to-buffer "*Life-Window*") ; show how life goes on while living
  (live)) ; it takes 70 years to finish and return!

내가 만들고 싶은 버퍼"생명 창"및 생활을 이벤트를 생성하여(살고)표시되는 동안 지속적으로 살아갑니다.

불행하게도,버퍼만 표시 된 후(라)반환합니다(때 그 이상!)

저는 팝을 버퍼는 동작은 동일합니다.

도움이 되었습니까?

해결책

호출을 추가 'sit-for 전화 'live, 예

(defun show-life ()
  (interactive)
  (switch-to-buffer "*Life-Window*")    ; show how life goes on while living
  (sit-for 0)                           ; perform redisplay
  (live))                               ; it takes 70 years to finish and return!

고,당신이 원하는 경우의 결과를 참조하십시오 'live,그것은 주기적으로 전화 'sit-for 뿐만 아니라.

문서에 대한 문자열 'sit-for 입니다:

앉은 컴파일 패키지 기능 `subr.el'.(앉아에 대한 초 및 선택 nodisp)

을 수행이 다시 표시되어,그릴 초 초까지 입력 유효합니다.초될 수 있는 부동 소수점 값입니다.(에서 운영 체제 는 시스템이 지원하지 않기 에 대한 분수의 두 번째, 부동 소수점 값을 내림 가장 가까운 정수입니다.)

는 경우 선택적인 arg nodisp t 지 다시 표시,그냥 기다려 입력합니다.다시 표시되어 발생하지 않는 경우에 입력 사용 가능하기 전에 시작됩니다.

값이면 기다렸다가 가득 시간 입력에 도착,그리고 nil 지 않습니다.

다른 팁

나는 솔루션입니다.내가 사용하는 (sit-for <time-to-wait>) 을 얻을 버퍼 업데이트를 표시하는 삶의 이벤트입니다.

그래서 코드 세그먼트는 수정해야 합니다 다음과 같다:

(defun show-life ()
  (interactive)
  (switch-to-buffer "*Life-Window*") ; show how life goes on while living
  (sit-for 0)
  (live)) ; it takes 70 years to finish and return!

어쩌면 내부의 live 체, sit-for 해야한 주기적으로 호출됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top