2014-02-22 3 views
1

다시 시작한 후 persp-mode https://github.com/Bad-ptr/persp-mode.el/blob/master/persp-mode.el을 사용하여 emacs windows 세션을 검색하려고했습니다. 작동시키지 못했습니다.defun 내에서 표현식을 호출하는 순서 *

그래서 소스 코드를 읽어 이맥스의 상태를 저장하는 데 사용되는 데이터 구조를 이해하려고합니다.

다음은 세션 상태를 저장하는 데 사용되는 함수입니다. 위의 기능이 비정상적 일에

(defun* persp-save-state-to-file (&optional (fname persp-auto-save-fname) 
              (phash *persp-hash*) 
              respect-persp-file-parameter) 
    (interactive (list (read-file-name "Save perspectives to file: " 
            persp-save-dir))) 

는 (특별한 elisp 내 현재의 이해에 따라) edebug를 사용하여 관찰된다.

  1. 선택적 인수 표현식이 평가됩니다.

  2. 표현은 "(대화가 ..."먼저 평가 한 후 선택적 인수 표현식이 평가됩니다.

모든 아이디어를 어떻게 코드를 디버깅하는 방법은. 또한 이맥스 설명서를 말한다 "defun는을 *" 는 common-lisp과 관련이 있지만, defun *이 defun과 다른 점에 대해서는 emacs 문서에서 더 이상의 정보가 없습니다. 일반적인 lisp을 배울 필요없이 defun *이하는 일에 대한 간단한 튜토리얼이 있습니까?

+0

이> 작업을 얻을 수 있습니다. | 무엇이 잘못되어 작동하지 않습니까? 오류 메시지가 있습니까? –

+0

@Bad_ptr : 마침내 성공했습니다. 오류의 정확한 원인을 찾을 수 없습니다. 하지만 ELC 파일과 관련이 있습니다. Persp-mode는 "workspace"모드에 의존하며 작업 공간 패키지에서 "wg-save"및 "wg-load"명령을 사용하려고 시도했지만 작동하지 않았습니다. 그러나 workspace.el 파일에서 (load-file)을 사용하면 효과가있었습니다. 따라서 workspace.el 파일을 삭제 한 후에 모든 것이 잘 동작합니다. –

답변

1

this post에서 설명하는 간단한 코드 조각 옵션 작업 방법. 요점은 다음과 같습니다. 예 : persp-auto-save-fname은 아무 것도 지정되지 않은 경우 fname 의 값이됩니다.

분명히 interactive이 인수를 제공하기 때문에 먼저 실행해야합니다. interactivefname의 값을 제공하지 않으면 persp-auto-save-fname이됩니다.

3

이맥스는 말한다 :

함수로 이름을 정의합니다. ARGLIST가 에 Common Lisp 규칙을 허용하고 BODY가 암시 적으로 (cl-block NAME ...)으로 둘러싸인 것을 제외하고는 일반적인`defun '과 같습니다.

커먼 리스프 arglist는 옵션, 휴식, 키워드 및 aux 인수를 제공합니다. 역사적으로 이것은 Lisp Machine Lisp과 Mumble에서 왔는데 두 개의 이전 Lisp 방언이 그 것이다. 자세한 내용은

은 다음을 참조하십시오 없습니다 http://www.gnu.org/software/emacs/manual/html_node/cl/Argument-Lists.html

관련 문제