2012-01-17 3 views
1

최근 C 소스 편집을 위해 emacs를 사용하기 시작했으며 cc 모드의 자동 줄 바꿈 기능 (c-toggle-auto-newline)을 사용하고 있습니다. 함수와 if/else 문과 같은 구조에서는 잘 작동하지만 닫는 중괄호 뒤에 세미콜론을 사용해야하는 경우에는 이상하게 작동합니다. GNU Emacs의 23.3에서 자동 줄 바꿈을 사용하여이맥스를 사용하는 구조체의 형식 C 코드 auto-newline

내가 얻을 : 내가 좋아하는 것

struct foo 
{ 
    int x; 
} 
    ; 

char int[2] = 
    { 
    0, 1 
    } 
    ; 

대신 얻을 :

struct foo { 
    int x; 
}; 

char int[2] = { 0, 1 }; 

내가 얻을 수있는 방법 닫는 세미콜론이 동일에 남아 닫는 중괄호로 선?

답변

1

자동 줄 바꿈을 사용하여이 문제를 해결할 수 있다고 생각하지 않습니다. 크게 생각한 기능이 아니며 특정 문자 (;, { 등) 뒤에 줄 바꿈을 삽입하기 만하면됩니다. 그러나 진지하게, 키를 누르고 누르는 것이 얼마나 힘듭니다? 모든 자동화는 항상 오류가 발생하기 쉽습니다.

+0

감사합니다. 나에게 자동 줄 바꿈은 모든 대문자와 일관성을 유지하기 위해 대괄호 배치를 자동화하고있다. yle이 사용 중입니다. 코딩하는 동안이 일관성을 유지할 수있는 또 다른 방법이 있습니까? – yamad

+0

들여 쓰기는 자동 줄 바꿈 없이도 자동으로 수행됩니다. 중괄호 사이의 것들은 들여 쓰기됩니다. – Phonon

+0

물론, 자동 브래킷 배치에 대해 이야기하고 있습니다. 예를 들어 자동 줄 바꿈은 현재 스타일이 호출하는 경우 다음 줄에 if 블록의 여는 괄호를 자동으로 배치합니다. – yamad

0

자동 줄 바꿈 기능이 켜져있을 때 "정리"동작을 사용자 지정할 수 있습니다. 이것은 c-cleanup-list 변수의 내용에 의해 제어됩니다. C-h v c-cleanup-list을 입력하여 이맥스 내에서이 대한 (보기 도움이됩니다. 특히

, 문제를 해결할 수 defun-close-semic-cleanup-list에 추가.

이미 ~/.emacs 파일 내에서 사용자 정의 스타일을 정의하는 경우, 그때는 아마 알아낼 수 그 방법은 가장 쉬운 방법은 Customize입니다. 도움말 버퍼 (C-h v c-cleanup-list을 실행했을 때 표시됨)에서 마지막 줄에이 변수를 사용자 정의 할 수있는 링크가 있습니다.