折り目やその他のVimスクリプトの黒魔術を使用してファイルの上部にあるライセンスブロックを非表示にする方法はありますか?彼らが私の編集ペインのこのような大きなセクションを占めるのは好きではありません。ボイラープレートでいっぱいになるのではなく、ファイルを最初に開いたときにファイルが何をしているのかを理解するのが好きです。
4 に答える
自動コマンドでこれを試してください。
function! FoldCopyright
if !exists( "b:foldedCopyright" )
let b:foldedCopyright = 1
1,15fold
endif
endfunction
4 行目の範囲を適切に調整します。著作権が別の場所で始まり、可変長である最悪のケースでは、次のパターンを実行する必要があります。
1,/Beginning of copyright/;/End of copyright/
このための小さな vim プラグインを作成しました。ページの最初のコメントをいつ折りたたむべきかを判断します。私のテストケースではうまくいきましたが、もちろん、改善は大歓迎です。他の単一または複数の行識別子を簡単に追加できるはずです。
ここで入手してください。インストールするには、他のプラグインと同様に、~/.vim/plugin にドロップするだけです。
編集:リンクをvim.orgに変更し、回答を整理しました
これは、ライセンス ブロックに一貫した形式があるかどうかと、プログラミングしている言語によって異なります。たとえば、python は「foldexpr」を使用して折りたたみを定義する傾向があるため、これを追加するには、既存の関数を次のように置き換える必要があります。新しいもの (または既存の折りたたみを取り除く)。C のデフォルトは手動折りたたみを使用することだと思います (ただし、自分でそのように構成した可能性はありますが、覚えていません)。
この投稿の最後にあるような単純な GPL 著作権メッセージを使用すると、foldmethod を manual に設定して、折りたたみを作成する単純な関数を使用できます。それはすべて、著作権の形式と、既存の折り畳みを維持することがどれほど重要かによって異なります。より有用な答えを得るには、もう少し詳細が必要だと思います。とにかく、この投稿の最後にある著作権表示を折りたたむために使用できるスクリプトの例を次に示します。
function! CreateCopyrightFold()
let InCopyright = 0
set foldmethod=manual
for Line in range(1,line('$'))
let LineContents = getline(Line)
if LineContents !~ "^#"
if InCopyright
let CopyrightEnd = Line - 1
exe CopyrightStart . ',' . CopyrightEnd . 'fold'
endif
break
elseif LineContents =~ "Copyright"
let InCopyright = 1
let CopyrightStart = Line
endif
endfor
endfunction
au BufRead *.py call CreateCopyrightFold()
次のような著作権表示を想定します。
# Copyright (C) 2009 Some Company or Something
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import sys
# Code continues...
それらを削除してみませんか?真剣に。
ソースコードは、定型文ではなく、権利の所有権とライセンスによって保護されています。少なくともほとんどの場合、そこにある必要はありません。
テキストが効果的に存在することを必要とするGPLおよび他の同様のスキームの場合、それはファイルの一番下または何にでも移動することができます。