metrologia - vim online
¿Cuál es la forma más elegante de comentar/descomentar bloques de código ruby en Vim? (10)
En VIM, en el momento en que necesito comentar una sección del código de Ruby:
- Navego a la primera columna en la fila que quiero comentar
- Presiono CTRL-v para ingresar al modo de bloque visual
- Navego hacia abajo hasta el lugar donde quiero finalizar la operación
- Escribo
r<space>si quiero descomentar el código or#si deseo comentarlo.
Este flujo de trabajo me parece bien, ¿hay alguna forma de mejorar este proceso? ¿Hay algún otro truco para comentar o descomentar secciones de código de rubí en vim?
¿Has probado EnhCommentify.vim o tComment.vim ?
Algunas personas parecen querer Nerd Commenter
Después de seleccionar visualmente, en modo bloque, el texto que desea comentar, presione I (que es una mayúscula i), escriba # y finalmente presione la tecla de escape. Básicamente es el mismo procedimiento que está utilizando actualmente, pero con insertar en lugar de reemplazar.
Para cada idioma (ftplugin), escribo asignaciones que agregarán o eliminarán el líder de comentarios y moverán el cursor hacia abajo una línea. Por ejemplo, en mi ftplugin python, tengo esto:
noremap <buffer> K :s,^/(/s*/)[^# /t]/@=,/1#,e<CR>:nohls<CR>zvj
noremap <buffer> <C-K> :s,^/(/s*/)#/s/@!,/1,e<CR>:nohls<CR>zvj
Encuentro que es una configuración extremadamente flexible:
- Pulsa
Kpara comentar la línea actual. - Presione
Krepetidamente para comentar muchas líneas. -
6Kpara comentar 6 líneas. -
Ken modo visual comenta toda la selección. - Todo se puede descomentar de la misma manera con
CTRL-K - Si las líneas ya están comentadas, no tendrán un
#adicional agregado al inicio. - Si un
#es seguido por un espacio, se considera un comentario de texto y no se toca.
Lo adapto ligeramente para cada idioma. No funciona tan bien para los comentarios de Old C (/*...*/) pero prefiero no usarlos de todos modos.
Yo hago casi lo mismo que tú.
comentando:
- selección de bloque visual con
CTRL-VluegoI#(insertar#en el comienzo)
sin comentarios:
- selección de bloque visual con
CTRL-VluegoX(eliminar el primer símbolo en la línea)
Tenga en cuenta mayúsculas I y X
También puedes hacer esto:
- Mover a la primera línea para comentar
- presione ''ESC'' y luego
- Presiona
Ctrl + qpara ingresar al modo Visual Block - Mover hecho a la última línea para comentar
- Pulse
I, comente presionando# - Presione
ESC
Y para descomentar:
- Mover al primer
#de comentario - Presiona
Ctrl + qpara ingresar al modo Visual Block - Mover hecho a la última línea para comentar
- Pulse
dpara eliminar los caracteres de comentario
Prueba T-comment con el bloque Ruby .
Tengo T-comment asignado a //.
" Easy commenting
nnoremap // :TComment<CR>
vnoremap // :TComment<CR>
Esto permite, desde cualquier punto de un bloque de Ruby, comentarlo con:
var (visual around Ruby)
// (toggle comments)
Tenga en cuenta que los bloques Ruby tienen un par de dependencias de complementos que necesitan instalación, consulte mis archivos Vim para ver un ejemplo.
Yo uso estos complementos:
- vim-commentary de Tim Pope, que define un operador de comentarios
gc - vim-textobj-rubyblock , que define
ir(dentro del bloque Ruby) yar(alrededor del bloque Ruby) para los bloques Ruby do ... - vim-ruby que define
im/ampara dentro / alrededor del método Ruby eiM/aMpara dentro / alrededor de la clase Ruby.
Usando esta combinación, puedo comentar / descomentar fácilmente el código específico de Ruby en el modo Normal, por ejemplo:
-
gcir/gcarcomment dentro / alrededor de Ruby do / end block. - comentario
gcim/gcamdentro / alrededor del método Ruby. -
gciM/gcaMdentro / alrededor de la clase Ruby. - Además de los mapas normales de comentarios como
gccpara comentar una línea, o5gccpara comentar 5 líneas.
En general, es muy parecido a Vim y natural.
Espero que ayude.
Te recomendaré una forma alternativa de comentar usando Macro
El primero, solo ponlo en tu .vimrc
let @c="I#/ej"
let @u="^xj"
Por ejemplo
Para comentar 12 líneas:
- Navega a la primera fila donde quieras comenzar tu comentario.
- Escriba
12@cen el modo de comando para comentar 12 líneas
Para descomentar 12 líneas:
- Navega a la primera fila que quieras descomentar.
- Escriba
12@uen el modo comando para descomentar 12 líneas
La conclusión
Comentando:
[quantifier]@c
Descomentario
[quantifier]@u
nota: estos comandos comenzarán a comentar / descomentar desde su línea actual.
Adicional:
Para mejorar su número de number.vim puede ayudarle mucho sobre el número de cuantificador.
Me gusta usar lo siguiente:
- pon el cursor en la primera línea que quieras comentar
- ingrese ma (sin dos puntos) para poner un marcador en esa línea
- ir a la última línea del bloque que desea comentar
- ingrese: ''a, .s / ^ / # / y luego ingrese
Eso dice, desde la línea que contiene el marcador "a", hasta la línea actual, sustituir un hash para el comienzo de la línea.