Как мне лучше всего просматривать исходный код внутри Emacs? - PullRequest
10 голосов
/ 01 ноября 2010

У меня есть рабочий процесс, в котором я использую grep и другие инструменты в оболочке для поиска в разных проектах, хотя мой главный редактор - emacs. Я обычно работаю над исправлением ошибок и небольшой разработкой исходного кода, который часто мне неизвестен, поэтому поиск кода важен. Я работаю в основном с php, ruby, java, perl и иногда с python.

Существует ли какое-либо общее расширение IDE в emacs, которое позволило бы мне иметь такие функции, как "определение goto" из нескольких файлов, охватывающих все эти языки? Существуют ли другие модули, которые могут быть полезны: просмотр кода или поиск по индексу?

Ответы [ 6 ]

6 голосов
/ 01 ноября 2010

Если вы хотите работать с множеством разных языков, ctags довольно гибок. См. EmacsWiki для инструкций по интеграции ctags.

2 голосов
/ 03 ноября 2010

Просмотр кода может означать кучу разных вещей.Упомянутый вами режим использования 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 требует некоторого изучения, и некоторые из перечисленных вами языков не полностью поддерживаются всеми инструментами, хотя при базовом просмотрерассмотренное выше должно быть в порядке.

1 голос
/ 02 ноября 2010

Для просмотра кода вы также можете использовать M-x imenu-tree

1 голос
/ 02 ноября 2010

Как и etags / ctags, попробуйте запустить grep с M-x grep, а не в оболочке, чтобы получить кликабельные ссылки в Emacs, вместо того, чтобы вручную искать файл и строку, соответствующие выводу grep.

1 голос
/ 01 ноября 2010

etags-select (который вы можете получить от ELPA) делает просмотр вашего файла TAGS более приятным, по моему опыту, если вы связываете M -. с etags-select-find-tag.

0 голосов
/ 21 августа 2011

Просмотр тегов, с динамическим завершением, фильтрация (подстрока, регулярное выражение, нечеткое), циклическое выполнение:

http://www.emacswiki.org/emacs/Icicles_-_Emacs_Tags_Enhancements

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...