문제
GNU EMACS에서는 C 모드에서 주석 지역 명령을 변경하는 좋은 방법이 있습니까?
/* This is a comment which extends */
/* over more than one line in C. */
에게
/* This is a comment which extends
over more than one line in C. */
? 나는 시도했다
(setq comment-multi-line t)
그러나 이것은 도움이되지 않습니다. 이있다 EMACS 매뉴얼의 멀티 라인 댓글 섹션, 그러나 그것은 아무것도 언급하지 않습니다.
해결책
EMACS 21 이후로 이름이 지정된 모듈이 있습니다. 'newcomment
, 주석 스타일이 다르면 변수 참조 'comment-styles
. 이 설정은 원하는 것과 가까워집니다.
(setq comment-style 'multi-line)
(참고 : 아마도 그 설정을 만들어야 할 것입니다. 'c-mode-hook
).
그러나 설정 중 어느 것도 주석을 원하는 것처럼 보이지 않습니다.
내가 원하는 것을 얻는 가장 쉬운 방법은이 해킹을 추가하는 것입니다.
(defadvice comment-region-internal (before comment-region-internal-hack-ccs activate)
"override 4th argument to be just spaces"
(when (eq major-mode 'c-mode) ; some condition here
(let ((arg (ad-get-arg 4)))
(when arg
(ad-set-arg 4 (make-string (length arg) ?\ ))))))
현재 설정 comment-style
항상 주석을 " *"로 접두사하십시오 (전체 " / *"가 아닌 경우).
EMACS 21이 없다면 간단히 다운로드 할 수 있다고 생각합니다. newcomment.el
저장소에서. 이전 버전의 EMAC에서 그대로 작동하는지 모르겠지만 EMAC를 업그레이드하는 것이 더 나은 솔루션이 될 것입니다.
내 해킹은 'uncomment-region
. 적절한 수정은 변경하는 것입니다 'comment-padright
. 다른 것들을 깨지 않기 위해 조금 더 연구가 필요합니다. 위의 해킹은 동작 만 변경합니다 'c-mode
(좋아하는 상태로 조정).
다른 팁
내장 주석 지원으로 찾을 수있는 가장 가까운 곳은 당신이 설정하는 경우입니다. comment-style
에게 multi-line
, 이것은 이것을 생산할 것입니다 :
/* This is a comment which extends
* over more than one line in C. */
충분히 가깝지 않으면 살펴보십시오. newcomment.el
자신의 주석 기능을 적절하게 정의하십시오.