Недавно я начал использовать EDE (через CEDET через ECB) в попытке получить Emacs настроен как разумная IDE для разработки на большом проекте C / C ++ / Python.
Что-то, что было немного неудобно для настройки (поскольку я новичок в Emacs и Lisp), было быстрым поиском файлов. В настоящее время у меня есть решение - создать необработанный / пустой проект (одному EDE не нужно знать, как управлять make-файлами или сборками), как в моем .emacs
файле:
;; 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 (на основе информации ссылка на главную страницу проекта 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 !, M-x ede-find-file
работает.
Однако есть одна серьезная проблема, которую я пытаюсь решить:
Мне нужно ввести полное имя файла с учетом регистра.
Это далеко не идеально для проекта такого размера, потому что вы часто помните только часть имени файла, а не обязательно регистр. Было бы здорово, если бы я мог настроить его так, чтобы мне нужно было только ввести нечувствительную к регистру подстроку имени файла, а затем получить буфер IDO или что-то подобное, которое я могу просмотреть, пока не получу файл, который я ищу.
helm-projectile
. Я не понимаю преимуществ использования EDE (чего я не знаю) и cscope для поиска файлов. - person Ehvince   schedule 30.05.2014