Empuje; Atajo para agregar comentario al comienzo de la línea

1

Cuando codifico, tiendo a ejecutar lo siguiente manualmente mucho después de haber seleccionado varias líneas de código.

:'<,'>s/^/#/

Quiero agregar esto a mi .vimrc pero tengo problemas para que funcione. La intención es poder seleccionar un conjunto de líneas y luego presionar mapleader cy vim agregará un # extra al comienzo de todas las líneas seleccionadas.

1 " Key mapping.                                                                                                                                                      
2 let mapleader = ","
...
141 nmap <silent> <leader>c :<'>'s/^/#/<CR>

La línea 141 parece simplemente eliminar las líneas seleccionadas y tengo problemas para ver por qué esto es así. ¿Alguna idea de lo que estoy haciendo mal o de lo que puedo cambiar para que esto funcione?

Mogget
fuente
1
También podría considerar el complemento NerdCommenter por cierto, que puede hacer esto y más: github.com/scrooloose/nerdcommenter
miyalys
1
@miyalys, estoy bastante satisfecho con la configuración que tengo en este momento y solo deseo agregar esa opción específica. Siento que agregar un complemento rico en funciones solo para obtener esto es un poco exagerado. Gracias por la sugerencia sin embargo.
Mogget
3
De acuerdo, no estoy seguro de por qué estás usando un nmapsi quieres seleccionar las líneas visual modeprimero, pero si todavía quieres seleccionar las líneas primero en modo visual, tengo una sugerencia para vimrc, sin embargo, parece que no puedo conseguir que funcione con <líder> c por alguna razón (tal vez <líder> c funcionará para usted): vmap <silent> t :s/^/#/<CR>:let @/ = ""<CR>. Si esto resuelve tu problema, lo escribiré como respuesta.
miyalys
1
@Mogget, en la línea 141 <'>'debería ser '<,'>(orden incorrecto y falta ","); También vmap ...
defínalo

Respuestas:

2

Pruebe esto: hace una inserción de bloque mientras está en modo visual

vmap <silent> <leader>c :norm i#<ESC>
Isaac Hanson
fuente
0

Esta es una réplica exacta de la línea que @miyalys dio en un comentario y funciona exactamente como yo quiero.

vmap <silent> t :s/^/#/<CR>:let @/ = ""<CR>

Él dice que no pudo hacerlo funcionar con c, pero lo hice funcionar con ese personaje.

Gracias.

Mogget
fuente