2014-11-22 1 views
3

Emacs 24.4에서는 기본 들여 쓰기 동작이 변경되었습니다. 새 줄은 자동으로 들여 쓰기됩니다. release notes에서 :RET에서 전기 들여 쓰기를 사용하지 않도록 설정하려면 어떻게해야합니까? 다른 전기 문자 (예 : '{')를 계속 사용 하시겠습니까?

*** `electric-indent-mode' is now enabled by default. 
Typing RET reindents the current line and indents the new line. 
`C-j' inserts a newline but does not indent. In some programming modes, 
additional characters are electric (eg `{'). 

나는 이전 동작을 선호하는, 그래서 난 내 .emacs 파일에

(electric-indent-mode 0) 

을 추가했다. 그러나 이것은 내가 의도 한 것이 아닌 모든 전기 문자를 사용할 수 없도록 만듭니다.

들여 쓰기를 트리거하는 '{'또는 ':'같은 문자가있는 동안 새로운 동작을 비활성화하는 방법이 있습니까?

답변

6

당신은 electric-indent-chars에서 ?\n을 제거하려면 : 내 .emacs 파일에 다음 행을 추가 한 후에는했다. 특정 모드에서

(setq electric-indent-chars (remq ?\n electric-indent-chars)) 

또는 전용 (예 : C) : : 당신과 함께 전 세계적으로이 작업을 수행 할 수

내가 찾던 정확히 무엇
(add-hook 'c-mode-hook 
      (lambda() 
      (setq-local electric-indent-chars (remq ?\n electric-indent-chars)))) 
+0

. 감사! – user3426575

0

c-electric-brace에 대한 문서를 확인하면 전기 문자의 동작이 버퍼 로컬 변수 c-electric-flag에 의해 제어된다는 것을 알게되었습니다.

(add-hook 'c-mode-hook 
      (lambda() 
      (set 'c-electric-flag t))) 

(add-hook 'c++-mode-hook 
      (lambda() 
      (set 'c-electric-flag t))) 
관련 문제