2013-05-23 4 views
2

검색은 태그 버퍼의 끝에 도달 한 경우 dired-do-search (A) 및 tags-loop-continue (M-)의 동작은 이멕스 24버퍼에서 24

에서 변경된 , Emacs 23의 보이는 버퍼는 검색 문자열이 발견 된 마지막 버퍼로 남았다. Emacs 24에서는 마지막 검색이 손실되고 또 다른 버퍼가 분명하게 보이지 않습니다.

어떻게 이맥스 24에서 이전 동작을 복구합니까?

답변

2

는이 추한 해킹 시도 수

(defadvice tags-loop-continue (around protect-search-end activate) 
    (let ((oldbuf (current-buffer))) 
    (unless (ignore-errors ad-do-it t) 
     (switch-to-buffer oldbuf) 
     (message "No more matches...")))) 

around-advice이 현재 버퍼를 기억하고 tags-loop-continue의 실제 실행 오류 우리 trap with ignore-errors IF 신호를 잠재적으로 복원한다.

+0

완벽하게 작동합니다 : 검색 결과 시퀀스를 버퍼 목록에 남겨 두어 검색이 끝난 후 반복적으로 I (묻어 버퍼)가 발견되면 검색 문자열이있는 버퍼를 역순으로 찾습니다. 코드를 설명하는 문장 두 개를 추가 하시겠습니까? – Calaf

+0

주위의 조언과 오류를 이해하면 코드는 실제로 매우 간단합니다. 나는 매뉴얼에 관련된 링크를 추가했다. 그러나 정보 페이지를 더 빨리 참고하기 위해'Ch S'를 추천한다. – mk1

+0

그냥 잠깐 ... 이것은 Cu i "-alR"이후에 작동하지만 dired 버퍼에는 없다. 하나의 디렉토리와 몇 개의 파일이 표시됩니다. – Calaf