2014-02-14 1 views
4

나는 하나의 키에 indent-for-tab-command 명령을 바인드했습니다. 이미 탭과 마찬가지로 스마트 모드 별 들여 쓰기를 만들고 싶습니다. 모든 모드. 항상 탭 대신 공백을 삽입합니다. 재구성/재 프로그래밍하는 방법?Emacs가 공백 대신 탭을 사용하도록 만드는 방법은 무엇입니까?

이맥스는 완전히 사용자 정의 가능한 편집기로 사용하고자합니다. 그래서 그것은 내가 원하는만큼 정확하게 행동 할 것입니다. 개발자의 의견에 전혀 신경 쓰지 않고 모든 것을 사용자 정의하고 싶습니다. 잘못인가?

+0

"공백 대신 탭"이 의미하는 바를 정확히 따라갈 수 있습니다. 당신이 제안했듯이, Emacs는 극도로 구성 가능하며 탭/스페이스 토글 설정 만있는 것은 아닙니다. EmacsWiki는 당신에게 도움이 될 수있는 여러 접근법들 (https://duckduckgo.com/?q=tabs+site%3Aemacswiki.org)을 가지고 있습니다. – Chris

+0

'indent-for-tab-command'를 호출하면 항상 라인의 시작 부분에 공백과 탭이 추가됩니다. 나는이 공간과 탭이 항상 탭이되기를 바란다. 그것이 내가 의미하는 바입니다. – Gherman

+0

공백 대신 탭을 사용하면 모든 사람이 탭을 원하는만큼 넓게 표시하도록 모든 사람이 자신의 편집기를 구성 할 수 있기 때문에 모든 사람이 원하는 것을 얻을 수 있으므로 저장면이됩니다. (유일한 문제 : 사람들은 그것을 얻지 못합니다.) – Zelphir

답변

5

모든 주요 모드가 들여 쓰기를 동일한 방식으로 처리하지는 않으므로 일부 동작을 조정하여 원하는 동작을 얻으십시오. 종종 그들은 들여 쓰기 설정을 갖습니다. cperl-indent-level. C와 같은 언어에 대한 cc-mode 기반 모드에서

,이 같은 당신이 원하는 일을해야한다 : 들여 쓰기 탭을 사용할 때 올 수있는 몇 가지 흥미로운 상황이 있다는 것을

(setq-default indent-tabs-mode t) 
(setq-default tab-width 4) ; Assuming you want your tabs to be four spaces wide 
(defvaralias 'c-basic-offset 'tab-width) 

참고. Emacs가 들여 쓰기를 다른 편집기와 어떻게 다르게 처리하는지 이해하려면 EmacsWiki indentation basics 페이지를 읽는 것이 좋습니다.

편집 :

ruby-mode를 들어,이 (이미 위에서 tab-width을 설정 한 가정) 작동합니다 : html-mode 포함 sgml-mode 유도 된 모드에 대한

(setq ruby-indent-tabs-mode t) 
(defvaralias 'ruby-indent-level 'tab-width) 

:

(defvaralias 'sgml-basic-offset 'tab-width) 
+0

'.rb'와'.html'은 사용 공간을 훔칩니다. '.c'는 탭을 사용하지만 4 대신 8 공백 길이를 사용합니다. – Gherman

+0

제 대답을 업데이트했습니다. C를 사용하게 될 것입니다.'tab-width' 라인 설정은'setq-default'를 사용 했어야합니다. setq'. 어떤 HTML 모드를 사용하고 있습니까? – Chris

+0

defailt 하나. 내가 아는 한 HTML 모드라고합니다. – Gherman