2014-03-28 1 views
1

키보드 단축키를 사용하여 Slime/Emacs에서 주어진 파일의 함수 정의를 직접 탐색하려면 어떻게합니까? 나는 M-에 대해서 알고있다. 하지만 그건 내가 원하는 것이 아닙니다. 나는 이미 파일에 있고 함수 이름을 알고있다. 텍스트로 검색해도 함수 정의 사이트로 직접 이동하지는 않으므로 해당 함수의 사이트로 전화를 걸 수 있습니다.Slime/Emacs : 바로 가기 기능의 키보드 단축키 (M-이 아님)

이클립스를 아는 사람이라면 Ctrl-O를 사용하여 개요보기를 열고 이에 대한 메소드 이름을 입력하면 필자가 원하는 기능으로 필터링 (elide) 할 것이므로, 나는 그저 enter를 눌러서 나를 데려 간다.

사용하는 대안이있는 경우 나도 사용해 볼 수 있습니다.

답변

1

M-x imenu을 찾는 것처럼 들립니다. 기본적으로 바로 가기 키는 없습니다. 나는 s-i에 바인딩하려면 :

(global-set-key [(super ?i)] 'imenu) 
1

@legoscia 말했듯이, IMENU이 답이다. 추가 정보로 Icicles이 Imenu의 사용을 향상시킬 수있는 방법을 언급 할 것입니다.

명백한 향상은 여러 패턴으로 선택 범위를 좁히는 것을 포함하여 더 나은 완성 (substring, regexp, ...)입니다.

Imenu 내비게이션 용으로 특화된 고드름multi-commands은 사실상 Imenu 브라우저를 제공합니다. 이 내용은 here입니다. 명령 아닌 명령 기능,면, 다른 종류의 사용자 옵션 및 기타 변수의 키맵 :

  • 이맥스 리스프 정의의 종류 중 /로 이동하는 다른 명령이 있습니다.

  • 내비게이션 중에 입력과 일치하는 후보를 정렬하고 정렬 순서로 해당 하위 집합을 순회 할 수 있습니다.

  • Imenu 정규식 (예 : (defun foobar () 및 현재 입력과 일치하지만 완전한 정의 (예 : 전체 기능 정의)뿐만 아니라 후보로 제공되는 명령의 "전체"버전이 있습니다.

  • 이러한 탐색 명령은 도 있습니다. 특히, "full"버전은 현재 미니 버퍼 입력을 후보로하는 완전한 정의를 제공합니다. 점진적으로 입력을 변경하면 전체 정의가 검색되어 선택 항목이 좁혀집니다. 그런 다음 그 중 하나를 탐색 할 수 있습니다.

1

lispy으로 할 수도 있습니다. Elisp, Clojure, Common Lisp and Scheme에 대한 Paredit, vi 및 IDE 기능이 혼합되어 있습니다.

원하는 기능을 lispy-goto ( g)에 연결하여 제공합니다. CEDET를 사용하여 전체 소스 디렉토리 인 을 구문 분석하면 현재 디렉토리의 모든 파일에서 태그로 이동할 수 있습니다.

는 단지 현재 파일에 태그를 보이는 것을, 또한 lispy-goto-localG에 바인딩이있다.

완료는 두 명령 모두에 사용되므로 정말 빠릅니다. 스크린 캐스트는 Navigating a directory of Common Lisp code with lispy.el 입니다.

당신은 훨씬 더 고급 imenu 이상하다고 볼 수 가 인식 태그 종류 등 in-package, defparameter, defconstant, defclass으로 이것은 또한 점액의 define-pattern-substitution 같은 임의의 태그로 확장 할 수 있습니다.

또한 lispy은 SLIDE를 사용하여 인라인 인수 (eldoc 대신)와 평가 연결을 제공합니다.