web-dev-qa-db-ja.com

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

テキストファイルまたはコードのテキスト行にコメントを付けたくありません。 。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とグーグルはあまり役に立ちませんでした。

14
mtk

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

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

5
slm

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

これは、vimrcで適切に機能します。たとえば、インプレース heredoc 構文の強調表示テストで、先頭文字のない実際のブロックコメントも必要です。私の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トリックに似ていますが、私にとってはうまくいきませんでした。この関数は絶対に呼び出さないでください。

6
Juve

1つのトリック:

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

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

1
lgeorget

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

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

このプラグインが提供する

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

使用方法

  • Vundle(またはPathogen)を介してインストールします。
  • テキストをハイライト表示して:を押します。:<,'>と表示されます
  • ここにコメント:<,'>Commentaryと入力し、Enterキーを押します。
  • ボム。あなたのできたつぼみ。
1
Weston Ganger

VimのtCommentプラグインを使用します: http://www.vim.org/scripts/script.php?script_id=117

はい、それはサポートします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
laebshade