2014-10-18 3 views
1

2 칸 들여 쓰기를 사용합니다. 탭이 없습니다. 이미 8 칸으로 들여 쓰기 된 파일을 열면, 그것이 계속해서 수행됩니다. 나는 이맥스가 파일 (8- 공백)을 내 설정 2 칸으로 변경하고 싶습니다. 이것을 할 수있는 방법이 있습니까?emacs는 이미 파일에 들어있는 내용에 따라 다른 들여 쓰기를 사용합니다.

이것은 내 탭을 구성한 방법이다 : 그것은 관련이있는 경우

(setq-default indent-tabs-mode nil) 
(setq-default tab-width 2) 

, 나는 파이썬 파일에서 일하고 있어요.

+0

emacs는 실제로이 8 개의 공백이 탭이되어야한다는 것을 어떻게 알 수 있습니까? 진짜 탭 문자가 제대로 공백 있다고 가정합니다. –

+3

또한 : 파이썬에서 2 칸 들여 쓰기를 사용하는 것은 PEP8에 대한 것입니다. 4 칸 들여 쓰기를 사용해야합니다. –

+0

@AdamSmith 아마도 라인을 시작하고 코드 의미를 올바르게 파싱하는 것을 볼 수 있습니다 ... 그리고 PEP8에서 다리에서 뛰어 내라고 말하면 어떻게 될까요? – DilithiumMatrix

답변

1

탭 너비를 설정하면 탭 문자가 표시 될 때 차지할 문자 수를 제어합니다. python-indent-offset을 설정해야합니다. 다음과 같이 모드 후크에서이 작업을 수행해야합니다.

(add-hook 'python-mode-hook (lambda() (setq python-indent-offset 2))) 

타르는 python.el 또는 python-mode.el을 사용하고 있습니까? 모름이라면 사용하는 이맥스의 버전은 무엇입니까? python-mode.el은 24.2 이전에 릴리스 된 emacs 버전의 기본값입니다. python.el에서만 테스트 했으므로 python-mode.el에 맞게 조정해야 할 수도 있습니다.

+0

감사합니다. 어떤 버전인지 모르지만 Emacs 23.1.1 (내 잘못이 아님! 원격 클러스터에서 실행 중)을 사용하고 있습니다. 아마 이런 이유로, 당신의 제안은 작동하지 않습니다 ... – DilithiumMatrix

+0

'Mx describe-mode'를 할 때, 그것은 '파이썬 모드'라고 알려주지 만 그것이 정의 된 곳은 말하지 않습니다 ... – DilithiumMatrix

+0

이것을 제어하는 ​​변수 파이썬 모드는 파이썬 들여 쓰기로 보인다. – imalison

관련 문제