vimrc-コメントをブロックする方法?


14

テキストファイルまたはコードのテキスト行にコメントを付けたくありません。.vimrcファイルにブロックコメントを挿入する方法を探しています。1行のコメントを挿入するに"は、たとえば次のようにします。

" remove spaces and tabs as well  at the end of line automatically while saving
autocmd BufWritePre * :%s/\s\+$//e

今では、インターネットを閲覧してクールな機能を追加した後、何年にもわたって比較的大量の設定/構成/プラグインを収集しています。大きなコメントブロックを.vimrcファイルに追加しようとしています。"各行への追加はオプションですが、ブロックコメント構文を探しています。/**/Cに似ています。

//_ ____"
/* */と同じです。

Unix.SE、SO、グーグル検索はあまり役に立ちませんでした。


1
複数行コメント機能がvim-configファイルに存在しないと思います。
ディラワー

回答:


5

これは可能ではないと思います。あなたができる最善のことは、いくつかのテキストをブロック選択しs/^/"/、vim の最初の文字を検索/置換して"、各行の先頭にa を挿入することです。

vimプラグインのNERD Commenterもこれを簡単にするのに役立ちます。


1
私は回避策を使用する:+ 3S / ^ / "/ドットは、現在の行を表し、3は(点線の後に)連続した行の量を表す。。
ダゴ

6

私の解決策は、コードを内にラップすることですfunction

これはvimrcでうまく機能します。たとえば、インプレースのヒアドキュメント構文強調表示テストでは、先頭文字のない実際のブロックコメントも必要です。私のvimrcでは、ヒアドキュメントSyntaxRangesを設定した直後にそのようなブロックを使用しています。

function! _blockcomment()

    " free text comment
    You can write free text here,
    but vim will try to highlight it as vimscript!

    " markdown heredoc
    test <<MD
    ### Nevertheless ###
    * for testing my fuzzy SyntaxRange heredocs
    * having no leading chars is essential
    * and the blockcomment function does the trick
    MD  

endfunction 

この解決策は、@Stéphaneのif 0トリックに似ていますが、私にはうまくいきませんでした。この関数は絶対に呼び出さないでください。


1

1つのトリック:

  • コメントする最初の行の最初の文字にカーソルを置きます
  • Ctrl-Vを押してビジュアルブロックモードに入ります
  • コメントする最後の行までカーソルを下に置く
  • I(Shift + i)を押して、条件付き挿入モードに入ります
  • コメントするには「」を押します(引用符とスペース)
  • Escキーを押して挿入モードを終了します

選択したすべての行の先頭に、挿入モードで入力した文字列が追加されます。


おかげで、私はvimrcのブロックコメントスタイルを正確に探していました。
2013年

vimにはそのような機能はないと思います。ちなみに、あまり一般的ではありません。多くのスクリプト言語では、一連の行に単一行コメントを使用するのがより一般的です。
lgeorget 2013年

1

tCommentVim のプラグインを使用:http ://www.vim.org/scripts/script.php ? script_id =1173

はい、Pythonをサポートしています(2011年に追加)。

説明:TCommentはトグルのように機能します。つまり、コメント化されていない行を含むテキストをコメント化し、コメント化されたテキスト(コメント化されていない行を含まないテキスト)をコメント化解除します。

ファイルタイプが正しく定義されている場合、:TCommentは、&commentstringまたは&commentsの値に基づいて、使用するコメント文字列を特定します。一部のファイルタイプでは、コメント定義が明示的に定義されています。| tcomment#DefineType()|を実行できます 独自の定義を追加します。

TCommentは、メインのファイルタイプとは異なるファイルタイプの埋め込みコードを処理する方法を知っています。たとえば、vimスクリプトのruby / python / perlリージョン、phpコードのHTMLまたはJavaScriptなど。

演算子として(g:tcommentMapLeaderOp1およびg:tcommentMapLeaderOp2を使用してプレフィックスをカスタマイズできます):

gc{motion}   :: Toggle comments (for small comments within one line 
                the &filetype_inline style will be used, if 
                defined) 
gcc          :: Toggle comment for the current line 
gC{motion}   :: Comment region 
gCc          :: Comment the current line 

主キーマップ:

<c-_><c-_>   :: :TComment 
<c-_><space> :: :TComment <QUERY COMMENT-BEGIN ?COMMENT-END> 
<c-_>b       :: :TCommentBlock 
<c-_>a       :: :TCommentAs <QUERY COMMENT TYPE> 
<c-_>n       :: :TCommentAs &filetype <QUERY COUNT> 
<c-_>s       :: :TCommentAs &filetype_<QUERY COMMENT SUBTYPE> 
<c-_>i       :: :TCommentInline 
<c-_>r       :: :TCommentRight 
<c-_>p       :: Comment the current inner paragraph 

リーダーとして_を使用したキーマップの2次セットもあります(端末ではより望ましい)。


1

tpope呼ばれることによってこの人生を変えるプラグインがありますvim-commentary

https://github.com/tpope/vim-commentary

このプラグインは以下を提供します

  • 正気
  • 適切にインデントされたコメント
  • 空/不要な行をコメント化しません

使い方

  • Vundle(またはPathogen)を介してインストールします。
  • テキストをハイライト表示し、次の:ように表示されるキーを押します:<,'>
  • ここにCommentary :<,'>Commentaryと入力してEnter キーを押します。
  • ボム。あなたのできたつぼみ。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.