Me preguntaba si había algún mapeo de teclas en Vim que me permitiera sangrar ciertas líneas de código (ya sea que esas líneas hayan sido seleccionadas en modo visual o norte líneas arriba/abajo de la posición actual del cursor).
Así que básicamente algo que convierte lo siguiente
def my_fun(x, y):
return x + y
a
#def my_fun(x, y):
# return x + y
Estoy de acuerdo con usar cualquiera # o """ por comentar las líneas relevantes. Idealmente, también me gustaría el mismo mapeo de teclas para descomentar las líneas si las líneas dadas han sido comentadas.
No hay necesidad de reinventar la rueda, hay un complemento: tComentario para usted, que admite (des) código de comentarios para varios idiomas.
– Maullar
12 de febrero de 2015 a las 14:41
teosp
Paso 1: Ve a la primera columna de la primera línea que quieras comentar.
Paso 2: Prensa: Control+v y seleccione las líneas que desea comentar:
Paso 3:Cambio–I#espacio (Ingrese al modo Insertar a la izquierda, escriba caracteres para insertar. La selección desaparecerá, pero todas las líneas dentro de ella se modificarán después del Paso 4).
Paso 4:Esc
“>
Comentar las líneas de esta manera funciona muy bien. ¿Hay alguna forma de descomentar estas líneas? Shift-I # <ESC> no funcionó (tal vez lo estoy haciendo mal).
– Rishabh Manoja
1 de abril de 2010 a las 16:14
@rishabh-manocha: use el bloque visual (Ctrl-V) para seleccionar todos los # agregados y escriba x para eliminarlos.
– teóspo
1 de abril de 2010 a las 16:18
Debe recordar que Shift-I significa “insertar en el primer lugar que no esté en blanco en la línea”, por lo que no se puede usar para eliminar. Haciendo una selección visual con Ctrl-V marca los caracteres a modificar, luego “x” borra un carácter en el área seleccionada, terminando borrando los caracteres ‘#’. Consulte “:h I” y “:h CTRL-V” en vim para obtener más información.
– el hombre de hojalata
2 de abril de 2010 a las 9:39
@Samaursa Ctrl-V probablemente no funcione en Windows. Pruebe Ctrl-Q en su lugar.
– AZ.
10 de abril de 2012 a las 22:57
Para eliminar 2 caracteres (si insertó ‘#’), ubique el cursor en la línea superior que desea modificar, presione ctrl-v para ingresar al modo de bloqueo visual, presione j (o flecha hacia abajo) para resaltar todas las líneas para modificar, presione l (o flecha hacia la derecha) para resaltar un ancho de 2 caracteres (presione una vez por columna para resaltar) y luego presione d para eliminar el texto resaltado.
– piensa en masa
26 de agosto de 2014 a las 18:46
unidireccional manualmente
:set number
:10,12s/^/#
aunque como los quitas?
–Charlie Parker
5 de diciembre de 2013 a las 22:30
@CharlieParker: :10,12s/^#//
– bstpierre
17 dic 2013 a las 14:40
Pulgares arriba para la respuesta ex (vieja escuela 🙂
He modificado un poco: Ctrl + k para comentar “vnoremap :s#^#\##:noh” > Ctrl + u para descomentar: “vnoremap :s#^\###:noh“
– Pradip Das
21 de marzo de 2016 a las 10:15
@JonathanHartley no tiene que usar ‘/’ en este caso ‘#’ es el delimitador. Entonces :s/^/#/ y :s/^#// son sustituciones equivalentes. Entonces reemplace el comienzo de la línea con ‘#’ y reemplace ‘#’ en la primera columna con ”. :noh simplemente borra la cadena de búsqueda para que nada quede resaltado cuando haya terminado.
– fechado
22 de septiembre de 2016 a las 16:06
@JonathanHartley, sinceramente, creo que solo seguí un patrón sin pensarlo. Ahora me sorprende que # vs / no haya aparecido antes. Cambié la respuesta basada en el sentido común. ¡Gracias!
– fechado
28/09/2016 a las 20:30
usuario2437225
Resalta tu bloque con: CambioV
Comenta el bloque seleccionado con: :norm i# (i minúscula)
Para descomentar, resalte su bloque nuevamente y elimine el comentario con: :norm ^x
los :norm El comando realiza una acción para cada línea seleccionada. Al comentar se insertará un # al comienzo de cada línea, y al quitar el comentario se eliminará #.
Por lo general, elimino un bloqueo visual (<C-V>), luego busque y reemplace el primer carácter con:
:'<,'>s/^/#
(Al ingresar al modo de comando con un bloque visual seleccionado automáticamente se coloca ‘<,'> en la línea de comando) Luego puedo descomentar el bloque barriendo el mismo bloque visual y:
:'<,'>s/^#//
Geoff Reedy
Hay algunos buenos complementos para ayudar a comentar / descomentar líneas. Por ejemplo El comentarista NERD.
lukas cenovsky
Tengo las siguientes líneas en mi .vimrc:
" comment line, selection with Ctrl-N,Ctrl-N
au BufEnter *.py nnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n
au BufEnter *.py inoremap <C-N><C-N> <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n
" uncomment line, selection with Ctrl-N,N
au BufEnter *.py nnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n
au BufEnter *.py inoremap <C-N>n <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n
Los accesos directos conservan la posición del cursor y los comentarios siempre que comiencen con # (hay espacio después de #). Por ejemplo:
# variable x
x = 0
Después de comentar:
# variable x
#x = 0
Después de descomentar:
# variable x
x = 0
Bien, pero creo que sería mejor usar el más simple s/^/#/ expresión regular Prefiero que el carácter de comentario aparezca al principio de la línea… pero mucho más importante, los ‘comentarios de comentarios’ son realmente importantes. yo tambien dejaria el au BufEnter *.pyya que # los comentarios son lo suficientemente generales como para que los comandos se utilicen en todos los búfer de forma predeterminada.
– travc
11 de octubre de 2014 a las 12:09
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
No hay necesidad de reinventar la rueda, hay un complemento: tComentario para usted, que admite (des) código de comentarios para varios idiomas.
– Maullar
12 de febrero de 2015 a las 14:41