2014-09-03 3 views
1

문제는 공백으로 입력했을 때 탭과 공백으로 입력했을 때 이맥스가 탭을 저장할 때 문제가된다는 것입니다. 공간의 수는 내가 이맥스는 공백을 탭으로 대체합니다.

→func1() { 
    → →some_long_command_name -param1 -param2 \ 
    → →→→→→→→→→→→→→→→→→→→→→→→→-param3 -param4 

를 입력 할 때이 tab-stop-list에 즉 정의, 붙잡음에 도달 할 때 편집기 이맥스는 그것을

한다 (탭    → 공간입니다 이다) 탭이 내 수동으로 입력 공간을 대체
→func1() { 
    → →some_long_command_name -param1 -param2 \ 
    → → → → → → →→→→-param3 -param4 

탭의 길이가 변경되면 보존하려는 들여 쓰기가 깨집니다.

+0

Emacs는 사용자가 설명하는 것처럼 공백을 탭으로 변환하지 않습니다. 펑키 한 추가 패키지를 사용하거나 설명하는 것 외에 다른 작업을하고 있습니다 (예 : 코드를 다시 들여 씁니다.). – Stefan

+0

@ 스 테판 지금은 ebuild-mode 버그 일 수 있다고 생각합니다. 개발자와 연락을 시도합니다. – tijagi

답변

1
+0

예. 웬일인지 나는 그것을 벌써 설치했다라고 생각했다. 하지만 그렇지 않았습니다. – tijagi

+0

쉘 모드에서는 절대로 작동하지 않을 것입니다; https://github.com/jcsalomon/smarttabs/issues/11#issuecomment-10761636 – tijagi

0

indent-tabs-mode 옵션을 사용자 지정하여 nil으로 지정하십시오. 이것은 이맥스가 들여 쓰기 공백을 변환하여 TAB 문자를 사용하지 않게합니다. 입력 한 SPC 개의 문자와 TAB 개의 문자는 그대로 유지됩니다.

TABself-insert-command에 바인드하거나 C-q TAB을 사용하여 TAB 문자를 삽입해야합니다. 즉, 들여 쓰기 명령으로 TAB 키를 잃게됩니다. 또는 TAB char을 삽입하는 명령에 다른 키를 바인드하거나 TAB 이외의 다른 키를 TAB이 기본적으로 바인드 된 들여 쓰기 명령에 바인드 할 수 있습니다.

+0

나는 자동 들여 쓰기를 잃고 싶지 않을 것이다. 나는 Emacs가 삽입 한 것을 없애고 싶다. 자동 들여 쓰기 및 공백 교체는 서로 의존해서는 안됩니다. 'indent.el'에서'indent-relative' 함수를 사용하여 추적 할 수 있지만, 나는 더 깊어지기 위해 elisp를 알지 못합니다 : D – tijagi

관련 문제