Функция Emacs для сообщения функции python, в которой я находится

Я редактирую код Python с довольно длинными функциями и решил, что было бы полезно быстро получить имя функции без прокрутки. Я поместил этот бит кода вместе, чтобы сделать это. Есть ли что-то встроенное в emacs вообще или стандартный режим python, в частности, который я могу использовать вместо этого?

(defun python-show-function-name() "Message the name of the function the point is in" (interactive) (save-excursion (beginning-of-defun) (message (format "%s" (thing-at-point 'line))))) 

    Вы можете найти достойные результаты с помощью режима-функции :

    Какой режим функции является второстепенным режимом, который отображает текущее имя функции в строке режима, обновляя его при перемещении в буфере.

    Чтобы включить или отключить какой режим функции, используйте команду Mx which-function-mode. Эта команда является глобальной; он применяется ко всем буферам, как существующим, так и тем, которые еще не созданы. Тем не менее, он вступает в силу только в некоторых основных режимах, перечисленных в значении которых-func-mode. Если значение равно t, то какой режим функции применяется ко всем основным режимам, которые знают, как его поддерживать, другими словами, все основные режимы, поддерживающие Imenu.

    Хотя я вижу, что это немного запутано в одном файле Python, который у меня есть здесь …

    Вы пытались py-beginning-of-def-or-class ?

     (defun python-show-function-name() "Message the name of the function the point is in" (interactive) (save-excursion (py-beginning-of-def-or-class) (message (format "%s" (thing-at-point 'line))))) 

    Я нахожу, что это дает мне лучшие результаты, чем ваше beginning-of-defun , но если это не проблема, которую вы испытываете, то, возможно, я просто вижу еще один симптом причины неудобства в моем другом ответе .

    Cc Cu (py-goto-block-up) может быть тем, что вы хотите.