我最近开始使用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>
答案 0 :(得分:0)
我已经使用M-x cscope-find-this-file
代替了。它迫使我在缓冲区中选择可能的文件路径选项,但它能够快速地为我提供正确的文件,并且不会受到区分大小写的阻碍。如果我可以将它连接到IDO,那么它应该完全按照我想要的那样。
对于Python,CScope / xcscope.el很好,但不适合导航Python标签。所以我开始使用Elpy。 M-x elpy-goto-definition
适用于Python文件,其余(C / C ++)我使用M-x cscope-find-this-symbol
。