Функция комментария строки 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

Режим комментариев Sexy 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

Связанный контент