파일 상단에 긴 GPL 저작권 고지 숨기기


10

처음에 긴 저작권 표시 가 포함 된 많은 * cpp 및 * h 파일을 사용하고 있습니다 . 텍스트를 실제로 제거하지 않고 emacs 가이 파일이없는 것처럼 이러한 파일을 표시하고 싶습니다.

Thas는 다음과 같습니다.

/*
 * Copyright (C) 2006-2008 Author A
 * Copyright (C) 2006-2008 Author B
 * Copyright (C) 2006-2008 Author C
 * Copyright (C) 2006-2008 Author D
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * As a special exception, you may use this file as part of a free
 * software library without restriction. Specifically, if other files
 * instantiate templates or use macros or inline functions from this
 * file, or you compile this file and link it with other files to
 * produce an executable, this file does not by itself cause the
 * resulting executable to be covered by the GNU General Public
 * License. This exception does not however invalidate any other
 * reasons why the executable file might be covered by the GNU Library
 * General Public License.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

 #ifndef FILENAME
 #define FILENAME
 ...

간단하게 이렇게 보일 것입니다

#ifndef FILENAME
#define FILENAME
...

답변:


13

이맥스는 elide-head.el당신이 원하는 것을 정확하게 수행합니다.

그것을 사용하려면 elide-head주요 모드 훅에 추가 find-file-hook하십시오 (귀하의 경우 c-mode-common-hook작동해야 함). GPL 라이센스 설명을 즉시 숨길 수 있습니다. 다른 긴 헤더를 숨기려면 사용자 정의하십시오 elide-head-headers-to-hide.

버퍼 맨 위에는 주석 만 숨기지 않고 정규식을 사용하여 라이센스의 시작과 끝을 일치시킵니다.


1
나는이 명령을 좋아한다. 아주 좋아요
Tu Do

매번 저를 때립니다. 내가 무언가를 쓸 때마다, 그것을 먼저 생각한 다른 누군가가있었습니다 :)
wvxvw

12

이를 수행하는 한 가지 방법이 있습니다.

이것을 init 파일에 추가하십시오 :

(defun hide-banner ()
  (save-excursion
    (let* ((start (progn (beginning-of-buffer) (point)))
           (end (progn (forward-comment (buffer-size)) (point)))
           (over (make-overlay start end)))
      (overlay-put over 'invisible t))))

초기 주석을 숨기려는 버퍼에서 다음을 추가하십시오.

// -*- eval: (hide-banner) -*-

또는 동일한 코드를 버퍼 후크에 추가하십시오. 또는 숨기려는 주석이 식별되는 방식을 확실히 변경할 수 있습니다 ( #ifndef / #define쌍 을 선택 hide-banner하려면 첫 번째 주석의 끝이 아닌 검색 기능을 수정해야합니다) .


공장! 이것은 훨씬 낫습니다, 감사합니다. 어떤 신체 엘이 이것을 필요로하는 경우에, 나의 고리는 여기있다 :(add-hook 'c-mode-common-hook 'hide-banner)
Beginner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.