2010-12-14 2 views
1

우리 회사는 최근 몇 가지 새로운 코드 스타일 규칙을 추가했으며, emacs를 통해 정규식 대신 몇 가지를 변경하는 쉬운 방법이 있는지 궁금합니다.Emacs에서 If 문 스타일 지정 변경?

하는 문은 이제 다음과 같이해야하는 경우 :

if (expression) { 

어디 내가 지금처럼 많은이 있습니다 공간이 부족

if(expression){ 

. 이 문제를 쉽게 해결할 수 있습니까?

+0

왜 이맥스는 아니고, 말하자면, sed? – Thomas

+2

얼마나 필요한지에 따라 정리해 보면 astyle (http://astyle.sourceforge.net/astyle.html)이나 형식 지정을 표준화하도록 특별히 설계된 다른 형식 지정 도구를 사용해 볼 수 있습니다. –

답변

2

당신은 expression은 한 줄에 항상있는 경우 정규 표현식을 대체 할 수있을 수도 있지만 난 그냥 안전을 위해 던져 - 멀리 기능을 사용하십시오 :

(defun my-fix-style() 
    (interactive) 
    (save-excursion 
    (goto-char (point-min)) 
    (while (re-search-forward "\\_<if(" nil t) 
     (backward-char) 
     (insert " ") 
     (forward-sexp) 
     (unless (looking-at "[ \t\n]") 
     (insert " "))))) 
+0

그것은 완벽하지만 그것은 주로 작동합니다. 당신은 또한'query-replace-regexp'를 사용하는 것을 고려할 수도 있습니다. –

+0

예, 어떤 종류의 코드가 작성되었는지에 따라 다릅니다. 다음을 고려하십시오 :'if (something_is_true()) {something_else(); }'(단 한 줄에 있어야합니다.) 정규 표현식은 괄호를 셀 수 없으므로 괄호를 어떻게 얻을 수 있습니까? 그것은 병리학 적이지만, 그것이 내가 함수를 사용하는 이유입니다. – scottfrazer

1

그냥 내 두 센트,하지만 난 경우 이맥스로이 일을하려고했는데 정규 표현식을 피하고 두 부분으로 접근하는 것이 좋습니다. 먼저 if(if (으로 바꾸려면 검색을 수행하십시오. Meta- % "if (" "if ("설명을위한 인용 부호는 입력 된 텍스트에 속하지 않습니다. 쿼리를 사용하거나 모든 대체 작업을 수행하라는 "!"를 입력하십시오. 닫기를위한 프로세스를 반복하십시오. 내 머리 꼭대기에서 벗어나면 문제없이 작동 할 것으로 기대됩니다. 두 번째도 루프에서 ") {"조합을 얻지 만 새로운 표준에서 if 문에 대한 공간이 필요한 경우 루프에 대해서도 그렇게 할 것으로 기대하므로 좋은 일인 것처럼 보입니다.