문제

저는 본업으로 Emacs에 살고 있습니다.완전히.나는 또한 코드에서 내용을 찾는 데 도움을 주기 위해 CScope에 상당히 의존하게 되었습니다.

일반적으로 분할된 창은 2개입니다(C-x 3).대체 텍스트 http://bitthicket.com/files/emacs-2split.JPG

그리고 오른쪽 창은 코드 버퍼용으로, 왼쪽 창은 CScope 검색 버퍼용으로 사용합니다.CScope 검색을 수행하고 결과를 선택하면 자동으로 오른쪽 창을 업데이트하여 결과에서 참조하는 버퍼를 표시합니다.내가 공부하고 있던 다른 버퍼에서 내 자리를 잃게 한다는 점을 제외하면 이것은 모두 훌륭하고 좋습니다.때때로 이것은 큰 문제가 아닙니다. 왜냐하면 [C-s u]가 나를 원래 있던 곳으로 되돌려주기 때문입니다.

하지만 더 좋은 점은 다음과 같이 3개의 분할 창을 갖는 것입니다(왼쪽 창의 [C-x 2]).대체 텍스트 http://bitthicket.com/files/emacs-3split.jpg

그리고 왼쪽 하단 창에는 CScope 검색 버퍼가 포함되고 왼쪽 상단 창은 CScope가 업데이트하는 유일한 버퍼가 됩니다.이렇게 하면 집중하고 있는 버퍼를 잃지 않고 CScope 검색을 보고 코드를 탐색할 수 있습니다.

내가 어떻게 할 수 있는지 아는 사람 있나요?

도움이 되었습니까?

해결책

이것을 .emacs 파일에 넣으세요:

;; Toggle window dedication

(defun toggle-window-dedicated ()

"Toggle whether the current active window is dedicated or not"

(interactive)

(message 

 (if (let (window (get-buffer-window (current-buffer)))

       (set-window-dedicated-p window 

        (not (window-dedicated-p window))))

    "Window '%s' is dedicated"

    "Window '%s' is normal")

 (current-buffer)))

그런 다음 일부 키에 바인딩합니다. Pause 키를 사용합니다.

(global-set-key [pause] 'toggle-window-dedicated)

그런 다음 이를 사용하여 잠그려는 창을 "전용"합니다.그러면 cscope는 일부 OTHER 창의 결과 창에서만 파일을 열 수 있습니다.매력이 있습니다.나는 정확히 이 목적을 위해 그것을 사용합니다. 하나의 소스 파일을 항상 화면에 유지하고 두 번째 버퍼/창에서 cscope를 사용하고 세 번째 버퍼/창에서 cscope 결과를 보는 것입니다.

다른 팁

글쎄, 나는 평판 창녀가 되지 않고 스스로 답을 찾기로 결정했습니다.Emacs wiki에 표시된 cscope.el과 RHEL의 cscope RPM 패키지와 함께 제공되는 xcscope.el을 살펴보았습니다.

둘 다 내가 원하는 것을 할 수 있는 방법을 제공하지 않는 것 같습니다.방법은 아마도 다음과 같은 패키지 변수를 추가하여 ELisp를 편집하는 것입니다. *browse-buffer* 또는 사용자가 처음으로 초기화하지 않은 경우 해당 변수를 초기화하십시오. [C-c C-s g] 또는 무엇이든 항상 결과 코드가 표시됩니다. *browse-buffer*.그런 다음 사용자는 *browse-buffer* 그가 원하는 곳 어디든.

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