Vim C 行注释功能

Vim C 行注释功能

下面的函数~/.vimrc是注释掉 C 行,并且运行完美。

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

但我有两个问题...
1. 如何让它注释掉范围行。2
. 我怎样才能像这样将它们注释掉:

/*  
 * multiline   
 * comment   
 *   
 */

我知道 NERDCommenter 插件可以为我完成这两件事,但是其中一个映射与我拥有的另一个插件的映射冲突。

答案1

:help NERDComMappings告诉您如何更改 NERDCommenter 的默认映射。例如,将其放入您的代码中~/.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
     */

另一种可能感兴趣的相关格式是可通过以下方式访问的“最小注释图”,<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

相关内容