Ты не совсем сумасшедший.
python-mode
может интегрироваться с eldoc-mode
для отображения спецификации arg функции, которую вы вызываете в точке. Просто сделайте M-x eldoc-mode
, пока вы находитесь в файле python, чтобы включить его, и он должен начать работать. Он говорит с нижним буфером python для прямой проверки функций, поэтому он всегда должен быть прилично точным. Вы можете включить его автоматически для всех новых python-mode
буферов с помощью (add-hook 'python-mode-hook '(lambda () (eldoc-mode 1)) t)
в вашем файле запуска emacs. Теперь я должен сказать, что я не занимаюсь обычным программированием на Python, и что когда я попробовал это прямо сейчас, это не сработало. Я потратил несколько минут на изучение исходного кода, и все, кажется, на месте, но код, который он запускает в подчиненном процессе, просто возвращает пустую строку. Возможно, это просто мои настройки, или я читаю не те исходные файлы; трудно сказать.
Emacs предоставляет несколько различных типов расширения / автозаполнения. По умолчанию у вас есть доступ к dabbrev-expand
, нажав M-/
. Это довольно простая форма завершения; он просто предназначен для работы с любым старым файлом, который вы редактируете. Более сложным является hippie-expand
, но даже это ничего не делает для Python. Документация говорит, что он может интегрироваться с hippie-expand
для точного завершения, но это может быть ложью; Я не мог понять, как это работает. Небольшое возмущение показывает несколько связанных с этим решений, все из которых, похоже, основаны на pymacs
. Если бы я собирался заняться программированием на python и у меня еще не было достаточно сложной установки emacs, я бы, вероятно, начал с установки emacs-for-python . Это выглядит довольно полной настройкой, и даже утверждает, что имеет живое предупреждение / обнаружение ошибок.
В духе помощи другим, чтобы помочь себе, я хотел бы указать, как я натолкнулся на всю эту информацию. Моим первым шагом было открыть файл в python-mode
. На самом деле у меня не было никакого доступного кода на Python, поэтому я просто пошел в свой рабочий буфер и сделал его буфером Python (M-x python-mode
). Затем я попросил помощи об этом странном новом режиме (C-h m
), чтобы посмотреть, на что он способен. Его автор любезно предоставил краткое описание возможностей режима, в котором упоминаются eldoc-mode
, Imenu, outline-mode
, hippie-expand
, таблицы rlcompleter, abbrev и многие другие. Оттуда я начал смотреть на исходный код. Например, для интеграции с eldoc-mode он определяет функцию с именем python-eldoc-function
и передает ее модулю eldoc для использования в буферах python. Чтение этого кода показывает мне, как он взаимодействует с нижним буфером и т. Д.
Я надеюсь, что это поможет.