문제

EMACS LISP에서 사용할 수있는 비 중 활성화 기능의 전체 목록을 어떻게 얻습니까?

대화식은 도움말 시스템에서 쉽게 찾을 수 있지만 내가 사용할 수있는 다른 모든 기능의 전체 목록을 원합니다. 예를 들어 concat, car, cdr, 등 (그리고 바람직하게는 문서화).

감사

에드

편집 : Jouni에게 감사드립니다. 나는 그의 대답을 조금씩 놀았고, 결과를 분류하게했다 (올바른 정렬 함수를 찾는 데 도움이되는 그의 코드의 결과를 사용하여!)

(flet ((first-line (text)
                   (if text
                       (substring text 0 (string-match "\n" text))
                     "")))
  (let ((funclist (list)))
    (mapatoms 
     (lambda (x)
       (and (fboundp x)                     ; does x name a function?
            (not (commandp (symbol-function x))) ; is it non-interactive?
            (subrp (symbol-function x))          ; is it built-in?
            (add-to-list 'funclist 
                         (concat (symbol-name x) " - " (first-line (documentation x))
                                 "\n")))))
    (dolist (item (sort funclist 'string<))
      (insert item))))
도움이 되었습니까?

해결책

기본 아이디어는 다음과 같습니다 EMACS LISP 매뉴얼 불분명 한 개념.

(flet ((first-line (text)
         (if text
             (substring text 0 (string-match "\n" text))
           "")))
  (mapatoms 
   (lambda (x)
     (and (fboundp x)                          ; does x name a function?
          (not (commandp (symbol-function x))) ; is it non-interactive?
          (subrp (symbol-function x))          ; is it built-in?
          (insert (symbol-name x) " - " (first-line (documentation x)) "\n")))))

다른 팁

노력하다 apropos 대신에 apropos-command. 그것은 당신에게 대화식 기능뿐만 아니라 모든 기능을 줄 것입니다. C-h a 기본적으로 후자에 구속되지만 ELISP 해킹을 많이하고 있다면 전자에 바인딩하는 것이 좋습니다.

"모든 함수"가 아닌 모든 기호를 포함하지만 Obarray의 내용을 확인할 수 있습니다.

또는 다음은 트릭을 수행 할 수 있습니다 (CL 호환성 패키지의 일부를 가져옵니다).

(Reduce (Lambda (So-Far Next) (IF (FBOUNDP NEXT) (다음 SO-FAR)) OBARRAY : 초기 가치 NIL)

당신은보다 더 나빠질 수 있습니다 웹 사이트를보십시오

빈 입력으로 apropos 명령을 사용해보십시오.

신경 쓰지 마. CH F (설명 기능)에는 비과반 기능이 포함되어 있지만, 비 중 활성화 만 보거나 검색하는 방법 (특히 내장 된 것) 만 찾는 데 관심이 있습니다.

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