10

かなり長い関数を使用して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)))))
4

3 に答える 3

21

which-function-modeでまともな結果が見つかるかもしれません:

どの関数モードがマイナーモードであり、現在の関数名がモード行に表示され、バッファー内を移動すると更新されます。

どの機能モードを有効または無効にするには、コマンドMxwhich-function-modeを使用します。このコマンドはグローバルです。これは、既存のバッファとまだ作成されていないバッファの両方のすべてのバッファに適用されます。ただし、これは特定の主要モードでのみ有効であり、which-func-modesの値にリストされています。値がtの場合、どの機能モードがそれをサポートする方法を知っているすべての主要モードに適用されます。つまり、Imenuをサポートするすべての主要モードに適用されます。

私がここに持っている1つのPythonファイルで少し混乱しているのを見ますが...

于 2009-04-23T16:01:39.197 に答える
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、しかしそれがあなたが抱えている問題ではないなら、多分私は他の答えで奇抜さの原因の別の症状を見ているだけです。

于 2009-04-23T16:09:00.960 に答える
0

Cc Cu(py-goto-block-up)が必要な場合があります。

于 2009-04-23T16:00:53.850 に答える