Emacs для программирования на Python: схема модуля / класса / браузера

#python #emacs #navigation

#python #emacs #навигация

Вопрос:

В настоящее время я использую https://github.com/fgallina/python .el ropemacs, но мне не хватает браузера модуля: отдельный буфер, в котором указаны имена, определенные в текущем модуле (список классов с их методами). Google говорит, что существуют OO-browser и emacs-code-browser, но они выглядят устаревшими, и я не могу найти никаких упоминаний об этих библиотеках ни в одном из популярных руководств по emacs python. Что я должен использовать для обеспечения удобной навигации по модулю?

Ответ №1:

Я думаю, что ECB (Emacs Code Browser) стоит попробовать. Я не использую его постоянно, но это может быть очень удобно. Особенно полезным является окно «Методы ECB», в котором отображается схема всех элементов модуля.

Вот скриншот с окном методов ECB в нижнем левом углу:http://dev.pocoo.org /~gbrandl/emacs2.png.

Смотрите также http://www.emacswiki.org/emacs/EmacsCodeBrowser .

Комментарии:

1. Недавно я смог заставить ECB работать с Emacs 24, следуя приведенным здесь инструкциям: github.com/alexott/ecb/tree/new-cedet . Проект SourceForge долгое время не обновлялся, но я думаю, что документация по настройке макета в порядке ( ecb.sourceforge.net/docs /… ).

Ответ №2:

Возможно, occur это может быть полезно в этом случае. Например, если вы хотите составить список определенных функций: M-x occur RET def RET следует посетить буфер, в котором перечислены def .

Комментарии:

1. Отличная простая рекомендация, которая работает в крайнем случае.

2. Действительно, отличный помощник, это прекрасно работает для Python: M-x occur RET defb|classb|=[ ]?lambda RET

Ответ №3:

M-x speedbar может дать вам то, что вы хотите.

Комментарии:

1. Я получаю список файлов в текущем каталоге, отображаемый в speedbar, но мне нужен список определенных имен (классов, функций) в текущем файле.

2. Я думаю, вы правы, мне действительно нужна M x speedbar и M x imenu, но я не могу заставить это работать…

3. @VladimirMihailenco Нажатие пробела в именах файлов расширяет символы в этом файле.

4. Использую Emacs пару месяцев и никогда не слышал о speedbar 🙂 Emacs всегда меня поражает 🙂