2010-07-22 6 views
2

우분투 9.04에서 GNU Emacs 22.2.1을 실행 중입니다.왜 파이썬 docstring에서 아포스트로피가 이맥스 구문 강조 표시를 깨뜨리는 걸까요?

이맥스에서 파이썬 코드를 편집 할 때, 문서 문자열에 아포스트로피가 있으면 emacs는 다른 아포스트로피가 사용될 때까지 다음 코드를 주석으로 강조 표시합니다. 정말 짜증나! 즉

,이 같은 문서화 문자열이있는 경우 :

''' This docstring has an apostrophe ' ''' 

그런 다음 모든 다음 코드는 주석으로 강조 표시됩니다. 주석은 코드로 강조 표시됩니다.
''' This docstring has an escaped apostrophe \' ''' 

그런 다음 강조

은 괜찮지 만, 그것은 재미와 내 팀에 다른 DEVS에 불필요한보고, 내가 사용하는 재미를 만들어 얻을 :

나는 이런 식으로,이를 방지하기 위해 문서화 문자열을 탈출 할 수 이맥스는 "apostrophies를 다룰 수 없기 때문에". ;)

그래서, 누구든지 이맥스를 더 잘 작동시키는 방법을 알고 있습니까?

감사합니다,

조쉬

+0

버전 23.1.1에서이 문제가 보이지 않습니다. 버그 일 뿐이었지만 수정되었습니다. –

답변

7

이것은 GNU Emacs 23.2.1에서 올바르게 작동하는 것으로 보입니다. 업그레이드가 실용적이지 않다면, Emacs 23 소스 코드 중 python.el 또는 그 관련 부분 (python-quote-syntax, python-font-lock-syntactic-keywords 및 코드)을 복사 할 수 있습니다 후자를 사용하는, 나는 생각한다. 나는 Elisp 해커가 아니다.)

불행히도 savannah.gnu.org의 bzr 브라우저가 작동하지 않아 코드를 직접 볼 수 없으므로 다운로드해야합니다. http://www.gnu.org/software/emacs/

+0

건물 23.2 지금. 잘하면 그게 수정. – Josh

+0

넵. 감사. – Josh

+0

FWIW, Emacs 23.1에서 python-mode.el 버전을 사용할 때도이 문제가 나타났습니다. 나는 그것을 제거하고 python.el.gz를 Emacs 23.2에서 /usr/local/share/emacs/23.1/site-lisp/로 옮겼다. – phils

2

그것은 이맥스 버그가있을 수 있습니다, 그러나 그것은 또한 목적에 의해 수 있습니다. docstring에 doctests를 삽입하면 API를 설명하기가 쉽습니다. 전체 파이썬 구문을 docstring 내부에서 강조하고 싶을 수도 있습니다.

아마도 버그 일 것입니다 ... (아마도 이맥스 구문 형광펜은 간단하고 큰 따옴표를 처리하고 트리플 단순 및 3 배 더블을 무시합니다). 그렇다면 예제에서와 같이 삼중 큰 따옴표 대신에 삼중 따옴표를 사용해야합니다 (대부분의 사용자는 삼중 쌍 따옴표를 사용합니다). 문제는 없습니다.

관련 문제