Просмотр кода может означать кучу разных вещей.Упомянутый вами режим использования grep подразумевает, что вы ищете определения функций или, возможно, ищете использование определенной функции.
Хотя CEDET поддерживает все перечисленные языки (некоторые с синтаксическим анализатором ctags), начинаяСвежая работа в новой области исходного кода - это то, в чем CEDEt не слишком хорош, пока не проиндексировал весь проект для тех задач, которые вы перечислили.Однако вы можете использовать GNU Global или idutils .Я думаю, что idutils поддерживает больше языков.
В CEDET команда `semantic-symref 'и связанные с ней команды будут выполнять grep-подобные операции с grep, или global, или idutils (в зависимости от того, какой тип таблицы тегов вы создали.) В отличие от вывода в стиле grep, выходной буфер symref показывает, какие функции используют данную команду.Затем вы можете выполнять макросы для совпадений с символом, который вам нужен, для выполнения больших операций рефакторинга.
CEDET также поддерживает теги типа jump to function, хотя, если вы уже используете что-то вроде ctags, он тоже работает отлично.CEDET лучше работает, когда дело доходит до обработки полиморфизма.
С CEDET вы также можете получить структурированный просмотр через imenu, speedbar и ECB (браузер кода emacs).ECB особенно хорош тем, что буфер методов позволяет быстро переходить к различным частям класса.Особенно удобно для классов, где части разбросаны, как в C ++.CEDET может даже создавать симпатичные UML-диаграммы структур наследования классов, которые связаны с вашим кодом.
CEDET требует некоторого изучения, и некоторые из перечисленных вами языков не полностью поддерживаются всеми инструментами, хотя при базовом просмотрерассмотренное выше должно быть в порядке.