14

自動 PEP8 準拠を取得するために、コード セクションの自動入力を 79 列、ドキュメント文字列の自動入力を 72 に設定したいと考えています。Lisp モード (emacs-lisp-docstring-fill-column) ではこれを行うオプションがあるようですが、Python ではそうではありません。

これを含む拡張された python-mode.el はどこかにありますか?

4

4 に答える 4

4

その方法はわかりませんが、その必要性を感じたことはありません。C-x f塗りつぶし列を変更するのはとても簡単です。M-p最後に入力した値を再利用するには、 を押すだけです。ちょうどC-x f M-p--- 3 つのキーストローク。

于 2012-01-11T22:35:08.687 に答える
3

わずかにテスト済み:

(defadvice current-fill-column (around handle-docstring activate)
  (flet ((docp (p) (let ((q (get-text-property p 'face))
                         (r 'font-lock-string-face))
                     (or (eq r q) (memq r q)))))
    (if (or (docp (point)) (docp (point-at-bol)) (docp (point-at-eol)))
        (setq ad-return-value 72)
      ad-do-it)))

これは、docstringを検出するために有効になっているfont-lock-modeに依存します。

于 2012-01-11T23:02:20.300 に答える
3

python.elEmacs 24.3 で配布されている現在のモードでは、次のように を再定義できpython-fill-stringます (この例では、 もfill-column85 に設定し、 を変更しますpython-fill-docstring-style)。

;; Python customizations
(defun my-python-fill-string (&optional justify)
  (let ((old-fill-column fill-column))
    (setq fill-column 72)
    (python-fill-string justify)
    (setq fill-column old-fill-column)
  ))

(add-hook 'python-mode-hook
          (lambda () (interactive)
            (setq python-fill-docstring-style 'pep-257-nn)
            (set-fill-column 85)
            (setq python-fill-string-function my-python-fill-string)
            ))
于 2015-05-20T04:26:39.903 に答える
1

現在の python-mode.el が提供するもの

(defcustom py-docstring-fill-column 72 [...]

(defcustom py-comment-fill-column 79 [...]

一方、コード値にfill-columnは が使用されます。

于 2015-05-20T05:35:41.997 に答える