Как установить другую ширину автозаполнения для строк документации и кода в режиме Python emacs? - PullRequest
13 голосов
/ 11 января 2012

Я бы хотел, чтобы для автозаполнения было задано 79 столбцов для разделов кода и 72 для строк документации, чтобы получить автоматическое соответствие PEP8.Кажется, есть возможность сделать это для режима Lisp (emacs-lisp-docstring-fill-column), но не для Python.

Есть ли где-нибудь расширенный python-mode.el, который включает это?

Ответы [ 4 ]

4 голосов
/ 12 января 2012

Я не знаю, как это сделать, но я никогда не чувствовал в этом необходимости.Это так просто использовать Cx f , чтобы изменить столбец заполнения.И вы можете просто нажать Mp , чтобы использовать последнее введенное вами значение.Просто Cx f Mp --- 3 нажатия клавиш.

3 голосов
/ 12 января 2012

Только слегка проверено:

(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)))

Это зависит от того, включен ли font-lock-mode для обнаружения строк документации.

2 голосов
/ 20 мая 2015

С текущим режимом python.el, как описано в Emacs 24.3, вы можете переопределить python-fill-string следующим образом (в этом примере я также установил fill-column на 85 и изменил 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)
            ))
1 голос
/ 20 мая 2015

Текущий python-mode.el предоставляет

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

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

в то время как для значения кода fill-column используется.

...