EMACS LISP 비 중과 기능 목록을 어떻게 얻습니까?
문제
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 (설명 기능)에는 비과반 기능이 포함되어 있지만, 비 중 활성화 만 보거나 검색하는 방법 (특히 내장 된 것) 만 찾는 데 관심이 있습니다.
제휴하지 않습니다 StackOverflow