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)))))
3 个回答
0
C-c C-u (py-goto-block-up) 可能正是你需要的功能。
2
你试过 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
效果要好,不过如果这不是你遇到的问题,那可能我只是看到了 我之前回答 中提到的另一个症状。
21
你可以试试 which-function-mode,效果还不错:
Which Function模式是一个小功能,它会在状态栏上显示你当前正在使用的函数名称,并且当你在编辑器中移动时,它会实时更新这个名称。
如果你想开启或关闭Which Function模式,可以使用命令 M-x which-function-mode。这个命令是全局的,也就是说它会对所有的编辑窗口生效,不管是已经打开的还是将来会打开的。不过,它只在某些主要模式下有效,这些模式在which-func-modes的设置中列出了。如果这个设置的值是t,那么Which Function模式就会适用于所有支持它的主要模式,也就是说,所有支持Imenu的主要模式。
不过我发现它在我这里的一个Python文件中有点混乱……