Как я могу использовать мета-точку (M-.) В python с emacs?

Существует ли эквивалент слизи для python?

Например, если я наведу курсор на foo () и сделаю M-. (перейти к определению) Я хотел бы увидеть исходное определение функции foo

Это должно работать независимо от того, находится ли foo в

1) в локальном каталоге проекта

2) в некоторых ~ / .virtualenvs / bar / lib / site-packages

3) в каком-то другом пути python

4) используется виртуальный env (т. е. он должен выглядеть в моем текущем virtualenv)

Делает ли комбинация pymacs / ropemacs какое-либо об этом?

21
задан nunb 18 August 2010 в 05:10
поделиться

2 ответа

Чтобы избежать -e, вы можете использовать etags и, найдя, вы рекурсивно добавляете файл py:

find . -type f -name '*.py' | xargs etags
14
ответ дан 29 November 2019 в 21:16
поделиться

M-. обычно запускает функцию « find-tag ». Вы должны создать файл TAGS для ваших исходных файлов Python. Затем вы " visit-tags-table " перед выполнением M-. Таким образом, Emacs перейдет ко всем определениям тега. Введите C-u M-. чтобы перейти к следующему определению вашего тега. См. Справочную документацию по find-tag. Обратитесь к справке Emacs, чтобы узнать, как создать файл TAGS из исходных файлов Python.

Вы можете, например, использовать Exuberant Ctags для создания файла TAGS.

Перейдите в корневой каталог ваших файлов python и сделайте следующее:

ctags -e -R .

Файл TAGS обычно создается в корневом каталоге проекта.

4
ответ дан 29 November 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: