이맥스 용 Google 서식 지정 기능을 사용하여 모든 소스 파일을 다시 포맷하고 싶습니다. google-c-style.el (here 참조).새로운 이맥스 C 스타일을 적용하여 모든 소스 파일을 다시 포맷하려면 어떻게해야합니까?
이 기능을 모든 소스 파일에 한 번에 적용하여 Google 스타일에 따라 형식이 제대로 지정되고 들여 쓰여 지도록하려면 어떻게해야합니까?
이맥스 용 Google 서식 지정 기능을 사용하여 모든 소스 파일을 다시 포맷하고 싶습니다. google-c-style.el (here 참조).새로운 이맥스 C 스타일을 적용하여 모든 소스 파일을 다시 포맷하려면 어떻게해야합니까?
이 기능을 모든 소스 파일에 한 번에 적용하여 Google 스타일에 따라 형식이 제대로 지정되고 들여 쓰여 지도록하려면 어떻게해야합니까?
이에 여러 가지가 있습니다
indent-region
이 시작되었지만 사용자는 untabify 또는 다른 것들을 원할 수도 있습니다.mark-whole-buffer
).이 스크립트는 다시 포맷하지 않는다고 생각합니다. 에 설명 된대로 대신 사용자 정의 "스타일"을 구축하는 방법의 예입니다 : CC mode manual - Styles
CC-모드 설명서도 말한다 : 당신이 이전 코드를 포맷 할 경우
, 당신은 개시 아마 더 좋을 것 같아 대신 다른 도구, 예. CC 모드보다 더 강력한 재 포맷 기능을 가진 GNU 들여 쓰기.
은 음, 그래,하지만 당신은 포맷 할 수 있습니다 스타일을로드하는 데. –
그래, 그래서 스타일을로드하고 들여 쓰기 버퍼 기능을 적용하고 싶습니다. 그런 다음 모든 파일을 사용하여 작업하십시오. – Frank
Reindent, yes. 재 포맷, 안돼. 예를 들어 괄호 앞뒤의 개행은 변경되지 않습니다. –
키보드 정의 매크로를 사용하기 전에이 작업을 수행했습니다. 모든 파일을 이맥스 (find . -name "*.cpp" | xargs emacs
과 같은)로로드 한 후 다음 키를 입력하십시오. 필자는 각 키 조합의 기능에 주석을 달았습니다.
C-x-( 'Begin recording macro
M-< 'Go to start of file
C-space 'Mark current location (now start of file)
M-> 'Go to end of file
M-x indent-region 'Indent entire file according to coding style
C-x C-s 'Save the current buffer
C-x C-k 'Close the current buffer
C-x-) 'End recording macro
이제
C-x e
을 입력하여 버퍼에서이 작업을 실행할 수 있습니다. 여러 파일을로드 한 경우
C-u 100 C-x e
과 같은 것을 실행하여 100 개의 파일에서이 파일을 실행할 수 있습니다. 이 수가 파일 수보다 많으면 OK입니다. 모든 처리가 완료되면 무시할 수있는 "벨소리"또는 기타 오류가 발생합니다.
당신이 dired 버퍼에 소스 파일을 표시 한 다음 같은 것을 할 수있는 각을 포맷하는 기능을 실행하려면 :
(defun clean-file(filename)
(your-function-goes-here))
(defun clean-each-dired-marked-file()
(interactive)
(for-each-dired-marked-file 'clean-file))
(defun for-each-dired-marked-file(fn)
"Do stuff for each marked file, only works in dired window"
(interactive)
(if (eq major-mode 'dired-mode)
(let ((filenames (dired-get-marked-files)))
(mapcar fn filenames))
(error (format "Not a Dired buffer \(%s\)" major-mode))))
감사합니다. – Frank
불행히도 블로그 게시물에 대한 링크가 이제 종료되었습니다. – Paul
블로그 게시물이 현재 작동 중입니다. –