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

时间:2014-05-30 08:50:35

标签: emacs cedet emacs-ecb

我最近开始使用EDE(通过CEDET通过ECB)尝试将Emacs设置为合理的IDE,以便在大型C / C ++ / Python上进行开发项目

设置起来有点繁琐(因为我是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")

M-x ede-find-file过去根本不起作用,因为EDE不知道项目目录和子目录中的任何文件。在EDE项目中设置文件需要花费很多时间(10000多个文件),但幸运的是EDE理解CSCope输出,所以这是在我的项目根目录中使用一个小的bash脚本(基于信息{{3 }}):

   #! /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!,M-x ede-find-file可以正常工作。

然而,我正在努力解决一个主要问题:

我需要输入完整的区分大小写的文件名。

这对于这个大小的项目来说不太理想,因为你经常只记住部分文件名,而不一定是这种情况。如果我可以设置它会很好,所以我只需要输入文件名的不区分大小写的子字符串,然后得到一个IDO缓冲区或类似的我可以通过选项卡直到我得到我正在寻找的文件。< / p>

1 个答案:

答案 0 :(得分:0)

我已经使用M-x cscope-find-this-file代替了。它迫使我在缓冲区中选择可能的文件路径选项,但它能够快速地为我提供正确的文件,并且不会受到区分大小写的阻碍。如果我可以将它连接到IDO,那么它应该完全按照我想要的那样。

对于Python,CScope / xcscope.el很好,但不适合导航Python标签。所以我开始使用ElpyM-x elpy-goto-definition适用于Python文件,其余(C / C ++)我使用M-x cscope-find-this-symbol