문제

이맥스 23.2 emacs-starter-kit v1에는 C-x C-i (또는 ido-imenu) (Sublime Text의 Cmd+R과 유사). 이맥스24 emacs-starter-kit v2에는 이 기능이 없습니다.나는 찾았다 이 github 문제 그리고 수정, 기능을 재현하려고 시도합니다.이 동안 ido-imenu 에서 근무 elisp-mode, 작동이 중지되었습니다. ruby-mode.나는 얻다:

imenu--make-index-alist: No items suitable for an index found in this buffer
  1. 이것을 작동시키는 방법을 알아낸 사람이 있나요?
  2. 왜 이것이 Emacs24에서 제거되었나요?
  3. 이 기능을 대체할 새로운 기능이 있습니까?
도움이 되었습니까?

해결책 2

그래서 결국 그 내용을 읽고 나서 깨달았습니다. 모드에 대한 메뉴 메뉴 정의 부분 다시 emacs-wiki에서.

짧은 답변:이 비트를 사용자 정의에 추가해야 합니다.더 추가해 보세요. 종류 목록에 추가합니다(방법만으로 만족합니다).

(add-hook 'ruby-mode-hook
          (lambda ()
            (set (make-local-variable imenu-generic-expression)
                 '(("Methods"  "^\\( *\\(def\\) +.+\\)"          1)
                   ))))

더 긴 답변:나는 처음에 ruby-imenu-generic-expression 기능을 설정하고 imenu-generic-expression 을 사용하여 ruby-mode-hook:

(defvar ruby-imenu-generic-expression
  '(("Methods"  "^\\( *\\(def\\) +.+\\)"          1))
  "The imenu regex to parse an outline of the ruby file")

(defun ruby-set-imenu-generic-expression ()
  (make-local-variable 'imenu-generic-expression)
  (make-local-variable 'imenu-create-index-function)
  (setq imenu-create-index-function 'imenu-default-create-index-function)
  (setq imenu-generic-expression ruby-imenu-generic-expression))

(add-hook 'ruby-mode-hook 'ruby-set-imenu-generic-expression)

그러나 이것은 작동하지 않았습니다(이전과 동일한 오류가 발생했습니다).더 많은 읽기 모드에 대한 메뉴 메뉴 정의 부분 나에게 길을 보여주었다.이제 나는 사람이 아닙니다. elisp 전문가님, 제 가설은 이렇습니다.기본적으로 위의 방법은 다음과 같은 모드에서 작동합니다.

주요 모드는 "실제" 변수인 'imenu-generic-expression'의 버퍼 로컬 복사본을 지원합니다.귀하의 모드가 이를 수행하지 못하면 후크에 의존해야 합니다.

에 대한 예 foo-mode 어떻게 해야 하는지 명확하게 알려줬어. ruby-mode.그래서 그것은 나타납니다 ruby-mode 실제 버퍼 로컬 복사본이 없습니다. imenu-generic-expression 변하기 쉬운.Emacs 23.2(ESK v1 포함)에서는 작동하지만 Emacs24에서는 작동하지 않는 이유를 여전히 설명할 수 없습니다. 하지만 적어도 작동하는 솔루션을 찾았습니다.

다른 팁

이 기능은 (Emacs에 포함된 기능과 달리) ESK의 일부이므로 버그 업스트림을 보고하는 것이 가장 좋습니다.관련 메모에서 ESK의 주요 경쟁자인 Emacs Prelude는 동일한 기능을 제공합니다( CC i 기본적으로) Emacs 24의 Ruby 모드에서는 제대로 작동하는 것 같습니다. 여기 자세한 내용은 다음에서 확인할 수 있습니다. ido-imenu.

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