문제

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 자신의 주석 기능을 적절하게 정의하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top