Vim C 行コメント機能

Vim C 行コメント機能

次の関数は~/.vimrcC 行をコメントアウトするもので、完璧に動作します。

function CLC()
    execute "normal ^i/*\<ESC>$a*/\<ESC>"
endfunction

しかし、2つの質問があります...
1.コメントアウトするにはどうすればいいですか?範囲行数。2
. 次のようにコメントアウトするにはどうすればよいでしょうか。

/*  
 * multiline   
 * comment   
 *   
 */

これら両方を実行できる NERDCommenter プラグインがあることは承知していますが、マッピングの 1 つが、私が持っている別のプラグインのマッピングと競合しています。

答え1

:help NERDComMappingsNERDCommenter のデフォルト マッピングを変更する方法を説明します。たとえば、~/.vimrcマッピング プレフィックスを次のように変更するには、次のように記述します<Leader>C

nmap <Leader>Cc <Plug>NERDCommenterComment
xmap <Leader>Cc <Plug>NERDCommenterComment
nmap <Leader>C<Space> <Plug>NERDCommenterToggle
xmap <Leader>C<Space> <Plug>NERDCommenterToggle
nmap <Leader>Cm <Plug>NERDCommenterMinimal
xmap <Leader>Cm <Plug>NERDCommenterMinimal
nmap <Leader>Cs <Plug>NERDCommenterSexy
xmap <Leader>Cs <Plug>NERDCommenterSexy
nmap <Leader>Ci <Plug>NERDCommenterInvert
xmap <Leader>Ci <Plug>NERDCommenterInvert
nmap <Leader>Cy <Plug>NERDCommenterYank
xmap <Leader>Cy <Plug>NERDCommenterYank
nmap <Leader>Cl <Plug>NERDCommenterAlignLeft
xmap <Leader>Cl <Plug>NERDCommenterAlignLeft
nmap <Leader>Cb <Plug>NERDCommenterAlignBoth
xmap <Leader>Cb <Plug>NERDCommenterAlignBoth
nmap <Leader>Cn <Plug>NERDCommenterNest
xmap <Leader>Cn <Plug>NERDCommenterNest
nmap <Leader>Cu <Plug>NERDCommenterUncomment
xmap <Leader>Cu <Plug>NERDCommenterUncomment
nmap <Leader>C$ <Plug>NERDCommenterToEOL
xmap <Leader>C$ <Plug>NERDCommenterToEOL
nmap <Leader>CA <Plug>NERDCommenterAppend
xmap <Leader>CA <Plug>NERDCommenterAppend

nmap <Leader>ca <Plug>NERDCommenterAltDelims

答え2

セクシーCコメントモード

行の範囲は、視覚的な選択 + でデフォルトで機能し<leader>cc、2.5.2 でテストされています。

しかし何よりも、この回答では、 を使用した「セクシー モード」コメントを強調したいと思います。<leader>csこれにより、優れた C 複数行コメントが生成されます。

たとえば、次のように始めるとします。

This is a c style sexy comment
So there!

次に<leader>cs視覚的な選択から次のように変換します。

/* This is a c style sexy comment
 * So there! */

また、以下を追加することで非コンパクト モードに切り替えることもできます.vimrc

let g:NERDCompactSexyComs = 0

これは次のように動作します。

------------------------------------------------------------------------------

                                                         *'NERDCompactSexyComs'*
Values: 0 or 1.
Default 0.

Some people may want their sexy comments to be like this: >
    /* Hi There!
     * This is a sexy comment
     * in c */
<
As opposed to like this: >
    /*
     * Hi There!
     * This is a sexy comment
     * in c
     */

興味深いかもしれないもう 1 つの関連形式は、 でアクセス可能な「最小限のコメント マップ」です<leader>cm。これは次のものを生成します。

/* Hi There!
   This is a sexy comment
   in C */

残念ながら、私の好みのスタイルを見つけることができませんでした。

/* Hi There!
 * This is a sexy comment
 * in c
 */

そこで私は開きました:https://github.com/scrooloose/nerdcommenter/issues/379

関連情報