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
K
para comentar la línea actual. - Presione
K
repetidamente para comentar muchas líneas. -
6K
para comentar 6 líneas. -
K
en 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-V
luegoI#
(insertar#
en el comienzo)
sin comentarios:
- selección de bloque visual con
CTRL-V
luegoX
(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 + q
para 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 + q
para ingresar al modo Visual Block - Mover hecho a la última línea para comentar
- Pulse
d
para 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
/am
para dentro / alrededor del método Ruby eiM
/aM
para 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
/gcar
comment dentro / alrededor de Ruby do / end block. - comentario
gcim
/gcam
dentro / alrededor del método Ruby. -
gciM
/gcaM
dentro / alrededor de la clase Ruby. - Además de los mapas normales de comentarios como
gcc
para comentar una línea, o5gcc
para 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@c
en el modo de comando para comentar 12 líneas
Para descomentar 12 líneas:
- Navega a la primera fila que quieras descomentar.
- Escriba
12@u
en 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.