私は最近、大規模な C/C++/Python プロジェクトで開発するための合理的な IDE として Emacs をセットアップしようとして、 ( ECB経由の CEDET経由で) EDEの使用を開始しました。
(私は Emacs と Lisp の初心者なので) セットアップが少し面倒だったのは、迅速なファイル検索でした。.emacs
私が現在持っている解決策は、私のファイルのように、未加工/空のプロジェクトをセットアップすることです (1 つの EDE は、メイクファイルやビルドの管理方法を知る必要はありません) 。
;; 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
その後、EDEcscope.out
はプロジェクトのルート フォルダーにある を取得し、kazam!M-x ede-find-file
が機能します。
ただし、私が整理するのに苦労している1つの大きな問題があります。
大文字と小文字を区別する完全なファイル名を入力する必要があります。
多くの場合、ファイル名の一部しか覚えておらず、必ずしもそうであるとは限らないため、これはこのサイズのプロジェクトでは理想的とは言えません。ファイル名の大文字と小文字を区別しない部分文字列を入力するだけで済み、IDO バッファなどを取得して、探しているファイルを取得するまでタブで移動できるように設定できれば素晴らしいと思います。