2009-04-23 56 views
10

我正在編輯一些Python代碼與相當長的函數,並決定它將是有用的快速獲取函數名稱而不滾動。我把這些代碼放在一起做。有一些內置的emacs,或者特別是標準的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))))) 

回答

21

您可能會發現像樣的成績與which-function-mode

哪個函數模式是次要的模式 ,在模式行顯示當前功能 名稱,更新它 你在緩衝區走動。

要啓用或禁用哪個功能模式,請使用命令M-x which-function-mode。這個命令是全局的 ;它適用於所有的緩衝區, 現有的和尚未被創建的 。但是,在某些主要模式下,它只會生效 ,其中 的值在which-func-modes中有效。如果 的值爲t,那麼哪個函數適用於所有主要模式,即 知道如何支持它 - 換句話說, 所有主要模式都支持 Imenu。

雖然我看到它開始有點迷糊中,我有一個在這裏的Python文件...

+0

是移動的,而這個工程不僅爲蟒蛇 – 2009-04-23 16:43:05

0

c-c C-u(py-goto-block-up)可能是你想要的。

+0

不幸的是,這需要在緩衝區中,這可能不是想要的海報...... – 2009-04-23 16:05:29

+0

這就是保存衝程進來 – 2009-09-16 16:06:12

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更好的結果,但如果這不是你所遇到的問題,那麼也許我只是看到wonkiness事業的另外一種表現my other answer