파이썬 docstring에서 채우기 단락을 작성하십시오.


16

파이썬 docstring을 모두 한 줄에 다음과 같이 입력하십시오.

"""
This is a long docstring. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis.
"""

그런 다음 Mq ( fill-paragraph)를 누르고 다음을 얻습니다.

"""This is a long docstring. Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Donec a diam lectus. Sed sit amet ipsum
mauris. Maecenas congue ligula ac quam viverra nec consectetur ante
hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas
mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem
lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non
tortor. Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed,
adipiscing id dolor. Pellentesque auctor nisi id magna consequat
sagittis.

"""

이 문제에는 두 가지 문제가 있습니다.

  1. docstring은 같은 줄에서 시작 """합니다. 삼중 따옴표는 자체 줄을 유지하는 것이 좋습니다.
  2. 우선 순위가 훨씬 낮습니다. docstring은 빈 줄로 끝납니다.

위의 예제는 고안되었지만, 특히 간단 M-q하고 전체 매개 변수를 리플 로우하려는 기존 docstring을 편집 할 때 특히 자주 발생 합니다.

답변:


15

python-fill-docstring-styleEmacs 24.4의 내장 Python 모드를 사용한다고 가정하여 적절하게 사용자 정의하십시오 . 기본값은입니다 pep-257. 이는 관찰 한 스타일로 이어집니다. 예를 들어 처음에는 줄 바꿈이없고 docstring이 끝나기 전에 두 줄 바꿈이 없습니다.

이 변수를 변경 symmetric하거나 django파이썬 모드가 선호하는 스타일, 즉 docstring의 시작 부분의 줄 바꿈과 끝 부분의 줄 바꿈에 따르도록하십시오.

(setq python-fill-docstring-style 'django)

또는 디렉토리 변수 를 통해 이를 설정하여 프로젝트마다 개별적으로 docstring 스타일을 구성하십시오.

symmetric그리고 django다른 WRT 한 줄 문서화 문자열입니다. 전자는 docstring이 한 줄에 맞는 경우 삼중 따옴표를 같은 줄에 넣은 반면, 후자는 삼중 따옴표를 별도의 줄에 넣습니다.

사용 가능한 모든 옵션을 보려면 의 docstring을python-fill-docstring-style 살펴보십시오 .


-1

끝에 빈 줄이 있으면 일반 버그처럼 보입니다 M-x report-emacs-bug.로 신고하십시오 . 그러나 첫 번째 요소의 경우 버그인지 또는 기능인지 확실하지 않으므로 버그 보고서에서 언급하고 싶을 수도 있지만 "PEP-NNN"규칙을 따르는 것일 수도 있습니다.

이것은 다음과 같은 첫 번째 문제를 해결할 수 있다고 말했습니다.

(add-hook 'python-mode-hook
          (lambda ()
            (set (make-local-variable 'paragraph-separate)
                 (concat paragraph-separate "\\|^[ \t]*\"\"\"[ \t]*$"))))

1
버그가 아니며 변경해야합니다 paragraph-separate. 의 docstring 스타일 python.el은 커스터마이즈 가능합니다.
lunaryorn

와우, 나는 docstring의 끝에 여분의 빈 줄이 표준에 의해 시행 될 수 있다고 추측하지 못했습니다.
Stefan

1
표준 (PEP 257)은 실제로 이것을 시행하지 않으며 단지 (일반적인) 해석입니다. 이맥스는 같은 후행 줄 바꿈없이 변형을 지원합니다 pep-257-nn에서 python-fill-docstring-style.
lunaryorn

1
아이러니하게도, 빈 링크의 이유는 다음과 같습니다 . 전체 문서 문자열이 한 줄에 들어 가지 않는 한 닫는 따옴표를 한 줄에 넣으십시오. 이런 식으로 Emacs의 fill-paragraph 명령을 사용할 수 있습니다.
Felipe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.