2011-02-23 2 views
4

나는 이멕스 23에서 2 년 동안 python.elfound here 버전을 아무런 문제없이 사용 해왔다. python.el을 사용하기로 결정하고 이상한 문제가 발생했습니다 :Emacs 23 내장 된 python.el 들여 쓰기 폭 4의 탭을 사용하여 들여 쓰기

들여 쓰기 용 탭과 4의 탭 너비를 사용하는 경우 python.el은 1 대신 모든 레벨에 대해 2 개의 탭 문자를 들여 쓰기합니다. 탭 너비 5의 경우, 들여 쓰기는 1 탭 플러스 3 공백이됩니다. 따라서 indent-tabs-modet 일 경우 tab-width에 관계없이 indent-for-tab-command은 항상 8의 탭 크기를 강제하는 것으로 보입니다.

이 동작을 무시하도록 설정할 수있는 다른 탭 관련 변수가 있습니까?

+0

질문에 대한 대답이 아니므로 단단한 탭이 항상 8 칸씩 있어야합니다. 더 작은 들여 쓰기는 항상 공백을 사용하여 이루어져야하며 절대 하드 탭 너비를 변경하면 안됩니다. 그렇지 않으면 자신과 다른 심각한 편두통이 나중에 발생하게됩니다. –

+0

나는 내가 따라갈 지 모르겠다. 직장에서 파이썬 코드는 들여 쓰기에 탭을 사용합니다 (나는 이것을 싫어하지만 받아들입니다). Emacs가 4 개의 공백으로 탭을 렌더링하길 원합니다. 이게 나쁘다는거야? –

+0

파이썬 모드 사용을 고려 했습니까? 파이썬의 핵심 개발자들에 의해 유지되고있다. https://launchpad.net/python-mode –

답변

5

Emacs 23 python.elthe newest python.el on the block에 대한 소스 코드를 조사한 후에이 문제를 발견했다고 생각합니다. 재고 python.el에서 예상대로

이 탭과 4 개 작품의 탭 폭이 python-mode 버퍼, 들여 쓰기에서 이러한 설정을 감안할 때 :

(setq indent-tabs-mode t 
     tab-width 4 
     python-indent 4) 

새로운 python.el를 들어, python-indent-offsetpython-indent을 변경해야합니다. 두 모드 모두 문제없이 두 설정을 사용하고 있습니다.

누군가이 문제에 대한 더 나은 해결책을 제시하면 추가하십시오. 정답으로 기꺼이 받아 들일 것입니다.

1

탭을 사용하여 붙어 있습니까? check

python.el을 사용하여 emacs 23을 시험해보고 싶습니까? check

저는 최근에 당신과 같은 벽에 뛰어 들었습니다 ... 제가 배운 것은 제가 진정으로 탭을 싫어하고 파이썬의 공백의 중요성을 믿을 수 없을 정도로 짜증나게한다는 것입니다.

init에서 탭 너비를 설정 했나요? 아니면 맞춤 설정 하시겠습니까?

사용자 정의를 통해 "편집 기본 사항"섹션에서 탭 너비를 변경하여 (글로벌/로컬 범위와 관련이있는 항목)을 지정하는 "4 개의 공백"탭을 가져야합니다. 하지만 재미는 거기서 끝나지 않습니다 ... python.el은 첫 번째 tab-stop (현재 열 4)을 들여 쓰고 싶을 뿐인데 indent-tab-mode 또는 tab-always-indent 에. 마침내 포기하고 파이썬 -mode.el을 사용하여 다시 돌아갔습니다. 파이썬 -mode.el은 고유 한 특성 세트를 가지고 있지만 적어도 파이썬 코드는 "올바르게"들여 쓰고 있습니다.

+0

나는'.emacs'에 직접 탭 폭을 설정하고'customize'를 사용하지 않습니다. 'python.el'이 내가 원하는 것을 할 수있게하는'python-indent' 변수가 있습니다. –