emacs 코드 탐색+점프
제 선택 은 cedet+ecb+global 입 니 다.
gnu-global 은 tag 를 호 환 하 는 도구 로 이름 을 보면 어떻게 일 을 할 계획 인지 알 수 있 습 니 다.gtags 는 emacs 에서 global 과 상호작용 하 는 플러그 인 입 니 다.
먼저 위의 세 개의 소스 코드 를 다운로드 하 세 요.global 은 gtags 입 니 다.
cedet 홈 페이지http://cedet.sourceforge.net/
ecb 홈 페이지http://ecb.sourceforge.net/
그리고 ubuntu 에서 sudo apt-get install 로 온 global 을 사용 하지 마 십시오.버 전 문 제 는 gtags 를 다운로드 하 는 것 과 호 환 되 지 않 을 수 있 습 니 다.매개 변 수 는 인식 되 지 않 습 니 다.
다운로드 주소http://www.gnu.org/s/global/download.html
다운로드 후 압축 해제,$./configure
$make
$sudo make install
그리고 소스 패키지 에 gtags.el 이 있 습 니 다.저희 emacs 플러그 인 입 니 다.
cedet,ecb,gtags 플러그 인 을 플러그 인 을 저장 하 는 위치 에 놓 으 십시오.제 것 은~/emacs/아래 에 있 습 니 다.그리고 모든 플러그 인 은 자신의 디 렉 터 리 가 있 습 니 다.
;; cedet
(add-to-list 'load-path "~/emacs/cedet-1.0pre7/common")
(add-to-list 'load-path "~/emacs/cedet-1.0pre7/contrib")
;;(load-file "~/emacs/cedet-1.0pre7/common/cedet.el")
(require 'cedet)
(require 'semantic-ia)
(global-ede-mode 1) ; Enable the Project management system
(semantic-load-enable-code-helpers) ; Enable prototype help and smart completion
(global-srecode-minor-mode 1) ; Enable template insertion menu
(require 'semantic-tag-folding nil 'noerror)
(global-semantic-tag-folding-mode 1)
(global-set-key [f12] 'semantic-ia-fast-jump)
(global-set-key [S-f12]
(lambda ()
(interactive)
(if (ring-empty-p (oref semantic-mru-bookmark-ring ring))
(error "Semantic Bookmark ring is currently empty"))
(let* ((ring (oref semantic-mru-bookmark-ring ring))
(alist (semantic-mrub-ring-to-assoc-list ring))
(first (cdr (car alist))))
(if (semantic-equivalent-tag-p (oref first tag)
(semantic-current-tag))
(setq first (cdr (car (cdr alist)))))
(semantic-mrub-switch-tags first))))
;(define-key c-mode-map [M-S-f12] 'semantic-analyze-proto-impl-toggle)
(global-set-key (kbd "M-q") 'semantic-ia-complete-symbol-menu)
(define-key semantic-tag-folding-mode-map (kbd "C-c , -") 'semantic-tag-folding-fold-block)
(define-key semantic-tag-folding-mode-map (kbd "C-c , +") 'semantic-tag-folding-show-block)
(define-key semantic-tag-folding-mode-map (kbd "C-_") 'semantic-tag-folding-fold-all)
(define-key semantic-tag-folding-mode-map (kbd "C-+") 'semantic-tag-folding-show-all)
;; (setq semanticdb-project-roots (list (expand-file-name "/")))
(defconst cedet-user-include-dirs
(list
"/home/backfire/work/android/kernel/include"
"/home/backfire/work/android/kernel/arch/arm/include"
"/home/backfire/work/android/kernel/arch/arm/mach-XXX/include"
""))
;; (defconst cedet-win32-include-dirs
;; (list "C:/MinGW/include"
;; "C:/MinGW/include/c++/3.4.5"
;; "C:/MinGW/include/c++/3.4.5/mingw32"
;; "C:/MinGW/include/c++/3.4.5/backward"
;; "C:/MinGW/lib/gcc/mingw32/3.4.5/include"
;; "C:/Program Files/Microsoft Visual Studio/VC98/MFC/Include"))
(require 'semantic-c nil 'noerror)
(let ((include-dirs cedet-user-include-dirs))
;; (when (eq system-type 'windows-nt)
;; (setq include-dirs (append include-dirs cedet-win32-include-dirs)))
(mapc (lambda (dir)
(semantic-add-system-include dir 'c++-mode)
(semantic-add-system-include dir 'c-mode))
include-dirs))
기본적으로
Meteor Liu 의 설정 입 니 다.
F12 쾌속 점프,shift+F12 점프.이것 은 그다지 좋 지 않다.일반적으로 나 는 단지 본문 에서 내 면 으로 뛰 어 넘 어 채택 할 뿐이다.
그리고 코드 접 기 설정 입 니 다.마 우 스 를 사용 하지 않 으 려 면 볼 수 있 습 니 다.
include 경 로 는 보완 용 입 니 다.저 는 M-q 를 사용 하지만 ac+gtags 를 사용 할 때 가 많 습 니 다.이 대부분의 시간 은 방치 되 어 있다.
그리고 ecb 를 설정 합 니 다.이것 은 창 을 구분 하 는 id 와 유사 한 부품 입 니 다.주로 tag-list 와 유사 한 기능 을 사용 합 니 다.다른 것 은 거의 사용 되 지 않 습 니 다.
;; ecb
(add-to-list 'load-path "~/emacs/ecb-2.40")
(require 'ecb)
;;
(setq ecb-tip-of-the-day nil)
;;
(global-set-key [C-left] 'windmove-left)
(global-set-key [C-right] 'windmove-right)
(global-set-key [C-up] 'windmove-up)
(global-set-key [C-down] 'windmove-down)
;; ecb
(define-key global-map [(control f1)] 'ecb-hide-ecb-windows)
(define-key global-map [(control f2)] 'ecb-show-ecb-windows)
;; ecb
;(define-key global-map "/C-c1" 'ecb-maximize-window-directories)
;(define-key global-map "/C-c2" 'ecb-maximize-window-sources)
;(define-key global-map "/C-c3" 'ecb-maximize-window-methods)
;(define-key global-map "/C-c4" 'ecb-maximize-window-history)
;;
;(define-key global-map "/C-c`" 'ecb-restore-default-window-sizes)
ctrl 에 화살 표를 넣 고 각 창 사 이 를 이동 합 니 다.다른 단축 키 는 습관 적 으로 누 르 고 필요 하지 않 으 면 보지 마 세 요.
그리고 몇 가지 자주 사용 하 는 설정 을 말 합 니 다.왼쪽 창의 기본 폭 을 조정 할 수 있 습 니 다.분 리 된 스타일 을 설정 할 수 있 습 니 다.구체 적 인 설정 은 ecb 의 매 뉴 얼 을 보 셔 야 합 니 다.
강제 적 입 니 다.그렇지 않 으 면 ecb 가 좋 지 않다 고 생각 할 것 입 니 다.ecb 도움말 을 보고 먼저 ecb 를 시작 한 다음 에 M-x ecb-show-help 를 시작 합 니 다.ecb info 가 열 립 니 다.
전역 설정
;; gtags
(add-to-list 'load-path "~/emacs/global")
;(autoload 'gtags-mode "gtags" "" t)
;(setq c-mode-hook '(lambda ()
; (gtags-mode 1)))
(global-set-key (kbd "C-c g f") 'gtags-find-tag)
(global-set-key (kbd "C-c g p") 'gtags-pop-stack)
(global-set-key (kbd "C-c g s") 'gtags-select-tag)
이것 도 매 뉴 얼 을 보 는 것 을 추천 합 니 다.gtags 를 먼저 시작 하고 cedet 를 시작 하 는 semantic 가 충돌 할 수 있 기 때문에 제 gtags-mode 는 모두 수 동 으로 시작 합 니 다.gtags-mode 라 는 명령 을 편안 한 버튼 에 묶 습 니 다.
그리고 제 가 자주 사용 하 는 단축 키 세 개...
C-c g f tag,C-c g p ,
C-c g s, tags tags, , emacs , 。
gtags ac , , , 。
android 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[SwiftUI]List화한 CoreData를 가로 스와이프로 행 삭제하는 방법상당히 조사했지만 일본어 자료가 없었기 때문에 비망록으로 남겨 둔다. 아래와 같이 CoreData를 참조한 리스트를 가로 스와이프로 삭제하고 싶었다. UI 요소뿐만 아니라 원본 데이터 당 삭제합니다. 잘 다른 페이지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.