簡體   English   中英

使用Emacs EDE快速查找項目文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM