[英]Quickly finding project files using Emacs EDE
我最近開始使用EDE (通過ECB通過CEDET ),試圖將Emacs設置為在較大的C / C ++ / Python項目上進行開發的合理IDE。
可以快速找到文件(因為我是Emacs和Lisp的新手),因此需要進行一些設置。 我目前擁有的解決方案是在.emacs
文件中像這樣建立一個原始/空白項目(一個EDE不需要知道如何管理makefile或為其生成內容):
;; Enable EDE mode
(global-ede-mode 1)
;; EDE knows nothing of my project type, so use CSCope to inform it of the project
;; and its files
(setq ede-locate-setup-options
'(ede-locate-cscope
ede-locate-base))
;; This is probably a dubious shortcut allocation,
;; but it's what I'm using at the mo.
(global-set-key (kbd "C-f") 'ede-find-file)
;; Set up the project for EDE
(ede-cpp-root-project "LargeApp" :file "/workspace/me/LargeApp/SConstruct")
Mx ede-find-file
以前根本不起作用,因為EDE不了解項目目錄和子目錄中的任何文件。 在EDE項目中設置文件可能要花很長時間(超過10000個文件),但幸運的是EDE可以理解CSCope輸出,因此,這是在我的項目根目錄中使用一個小的bash腳本(基於從CScope項目主頁面 ):
#! /usr/bin/env bash
cd /workspace/me/LargeApp
find /workspace/me/LargeApp \
-type d -name '.git*' -prune -o \
-type d -name '.svn*' -prune -o \
-type d -name 'build' -prune -o \
-type d -name 'bin' -prune -o \
-type d -name 'lib' -prune -o \
-name '*.h' -print -o \
-name '*.hpp' -print -o \
-name '*.c' -print -o \
-name '*.cpp' -print -o \
-name '*.cc' -print -o \
-name '*.py' -print -o \
-name '*.lua' -print -o \
-name '*.xml' -print >./cscope.files
cscope -b -q -k
然后,EDE在項目根文件夾中拾取cscope.out
,然后運行kazam!, Mx ede-find-file
ede Mx ede-find-file
。
但是,我正在努力解決一個主要問題:
我需要輸入完整的,區分大小寫的文件名。
對於這樣大小的項目,這不理想,因為您通常只記住文件名的一部分,而不一定記住。 如果可以進行設置,那就太好了,所以我只需要鍵入文件名的不區分大小寫的子字符串,然后獲取一個IDO緩沖區或類似的標簽即可查看直到找到我要查找的文件。
我求助於使用Mx cscope-find-this-file
。 它迫使我從緩沖區中可能的文件路徑選項中進行選擇,但是這樣做確實合理,可以迅速為我提供正確的文件,並且不受大小寫敏感性的影響。 如果我可以將其連接到IDO,則它應該完全按照我的要求進行。
對於Python,CScope / xcscope.el很好,但對於瀏覽Python標簽而言並不理想。 所以我開始使用Elpy 。 Mx elpy-goto-definition
對於Python文件非常有效,而對於其余(C / C ++),我正在使用Mx cscope-find-this-symbol
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.