
La siguiente función ~/.vimrc
es comentar la línea C y funciona perfectamente.
function CLC()
execute "normal ^i/*\<ESC>$a*/\<ESC>"
endfunction
Pero tengo dos preguntas...
1. ¿Cómo hago para comentar unrangode líneas.
2. ¿Cómo puedo hacer que los comente así?
/*
* multiline
* comment
*
*/
Conozco el complemento NERDCommenter que haría ambas cosas por mí, pero una de las asignaciones entra en conflicto con la asignación de otro complemento que tengo.
Respuesta1
:help NERDComMappings
le dice cómo cambiar las asignaciones predeterminadas de NERDCommenter. Por ejemplo, ponga esto en su ~/.vimrc
para cambiar el prefijo de mapeo a <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
Respuesta2
Modo de comentarios sexy C
Los rangos de líneas simplemente funcionan de forma predeterminada con la selección visual + <leader>cc
, probado en 2.5.2.
Pero, sobre todo, quiero resaltar en esta respuesta los comentarios en "modo sexy" <leader>cs
, que generan bonitos comentarios multilínea en C.
Por ejemplo, si comienzas con:
This is a c style sexy comment
So there!
luego <leader>cs
a partir de la selección visual lo transforma en:
/* This is a c style sexy comment
* So there! */
Y también puedes cambiar al modo no compacto agregando a tu .vimrc
:
let g:NERDCompactSexyComs = 0
que funciona de la siguiente manera:
------------------------------------------------------------------------------
*'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
*/
Otro formato relacionado que podría ser de interés es el "Mapa de comentarios mínimos" al que se puede acceder <leader>cm
y que produce:
/* Hi There!
This is a sexy comment
in C */
Lamentablemente no pude encontrar mi estilo preferido:
/* Hi There!
* This is a sexy comment
* in c
*/
entonces abrí:https://github.com/scrooloose/nerdcommenter/issues/379