큰 / 복잡한 lisp 객체를 검사하는 방법 객체 표현을

크고 복잡한 목록 객체를 전달하는 조직 내보내기 엔진 코드로 작업하고 있습니다. 단어로 줄 바꿈으로 인쇄 된 긴 객체 표현을 읽거나 스크래치 버퍼에서 접근자를 반복적으로 작성하고 평가하여 객체를 탐색하는 것이 다소 지루합니다. 대화식으로 값을 검사하는 좋은 방법이 있는지 궁금합니다.

예를 들어, 키 / 값을 점진적으로 확장 할 수있는 대화식 트리보기에 객체 값을 표시하는 많은 IDE가 있습니다. 객체는 화면에 지속적으로 표시되며 볼 수있는 값 유형에 대해 큰 걱정없이 검사 할 수 있습니다. Chrome 개발자 도구의 무작위 스크린 샷 (예 :

Chrome 개발자 도구 객체보기

다른 도구는 값을 탐색 가능한 팝 오버 (기능적으로 매우 유사)로 나타냅니다. Visual Studio의 임의 스크린 샷 :

emacs lisp와 비슷한 것이 있습니까? 아마도 edebug에 내장되거나 다른 패키지에서 제공되는 것이 있습니까? 아니면 이것은 단지 개발을 기다리고 있습니까?

참고 : 이 질문을 게시 한 직후 pppp +를 발견했습니다 . 서식은 객체 구조를 시각적으로 탐색하는 데 매우 유용합니다. 별도의 버퍼에서 출력 을 수정 print-length하고 print-depth극단적 인 값을 필요로하지 않고 출력 형식을 지정할 필요가 없습니다 .



답변

나는 기능을 발견 pp-eval-last-sexp-with-tooltippp+패키지는 이에 대한 좋은 범용 솔루션입니다. 효과적으로와 동일 eval-last-sexp하지만 반환 값의 형식을 깔끔하게 지정하고 툴팁으로 표시합니다. pp-max-tooltip-size( x-max-tooltip-size) 보다 큰 값 은 별도의 창에 표시됩니다.

나는 현재에 묶여있다 C-x C-e.

(require 'pp+)
(define-key global-map (kbd "C-x C-e") #'pp-eval-last-sexp-with-tooltip)