vim comments commenting

¿Cuál es tu forma favorita de comentar varias líneas en Vim?



comments commenting (6)

Aunque esto es bastante antiguo, solo quería agregar mi solución, que es bastante similar a todos los demás, pero agrega la función de iluminación insuficiente. En mi archivo .vimrc tengo los siguientes mapas:

:vmap `c :s/^///*/<cr>gv:s/$/*///<cr>:noh<cr>i :vmap `r :s/^///*//<cr>gv:s//*//$/<cr>:noh<cr>i

Nota: uso / * línea de código * / estilo de comentario para que sea compatible con el código c anterior. En vim simplemente resalto las líneas y presiono `c para comentar y` r para eliminar comentarios.

Sucede más de las veces que tengo que comentar varias líneas a la vez en Vim. Los métodos que conozco no son tan rápidos como los de TextMate para comentar líneas.

¿Cuál es tu forma favorita de hacerlo?

Actualmente uso:

Método 1:

  • ir al primer carácter de una línea y usar el modo visual en bloque ( ctrl - v )
  • ir hacia abajo / arriba hasta que se seleccionen los primeros caracteres de cada línea que desee comentar
  • usa shift - i y luego escribe tu caracter de comentario ( # para Ruby)
  • use esc para insertar el caracter de comentario en cada línea

Método 2:

  • seleccione las líneas que necesita para comentar usando el modo visual linewise ( shift - v )
  • tipo : que le da un prompt :''<,''> que puede extender a :''<,''>s/^/#/

Método 3:

  • ir a la primera línea para ser comentada
  • hacer un marcador, por ejemplo, escribir mm
  • ir a la última línea para ser comentada
  • tipo :''m,.s/^/#/

Me gusta más el método 1, pero aún espero que haya una mejor manera.



Estaba buscando un conjunto de comandos para los comentarios de una línea de ANSI C y probé la mayoría de las respuestas en SO.

Ninguno de ellos se adapta a mis necesidades y, como tengo que usar una versión antigua de 7.2 de Vim en este momento, y no puedo descargar fácilmente los complementos adecuados, se me ocurrieron estas útiles asignaciones:

:nnoremap <leader>c :exe "normal mqI/* "<esc> :exe "normal A */"<esc> :exe "normal ''q"<cr> :nnoremap <leader>r ^xxx$xxx^

<leader>c comenta una línea y vuelve al principio de esa línea.

<leader>r elimina los comentarios del principio y el final de la línea actual.


Los complementos son el camino a seguir. Son extensibles, ya admiten más tipos de archivos que nunca usarías, son automágicamente capaces de alternar el estado comentado de una línea (en otras palabras: no es necesario consumir dos atajos donde uno es suficiente).

Vea la lista dada por CMS .


Normalmente solo guardo el paso en una macro y luego invoco la macro de la manera que me apetezca.


Utilizo un mapa de teclas para la parte de expresiones regulares, pero hago la misma selección visual primero. Usualmente usando:

vip

para obtener el bloque visual (selección visual de párrafo)

luego usando

/cc /co

para comentar agregar / eliminar (cc, co elegido por razones de memoria muscular)

con las asignaciones definidas en .vimrc como:

vmap <leader>cc :s/^/#/<cr> vmap <leader>co :s/^#//<cr>