Vim: línea de comentario envolvente con carácter de comentario


27

Hoy me di cuenta de que a menudo me gusta definir secciones en mi código así:

####################
# Helper Functions #
####################

Pero eso es tedioso de hacer. Suponiendo que tengo una línea como esta:

# Helper Functions #

¿Cuál es el conjunto más corto de vimpulsaciones de teclas para envolverlo en un #? Shift no cuenta como una pulsación de tecla en este desafío.

Casos de prueba:

Input: "#test test test#"
Output:
################
#test test test#
################

Input: "#this is a nice block comment#"
Output:
##############################
#this is a nice block comment#
##############################

Input: "# s p a c e s must be supported a l s o#"
Output:
########################################
# s p a c e s must be supported a l s o#
########################################

3
Estoy votando para cerrar esta pregunta como fuera de tema porque "pulsaciones de teclas vim" básicamente significa ejecutar comandos de un IDE, como Ctrl - C o Ctrl - R en ST2. Esto no es codificación de ninguna forma.
Optimizador

3
@Optimizer Vim es un lenguaje completo (por ejemplo, mediante el uso de macros) con varias codificaciones de construcciones diferentes y el método principal para la edición se basa en verbos (acciones) y objetos (movimientos). Ya existe una página web popular para vim golf: www.vimgolf.com. (Pero estoy de acuerdo en que esta pregunta en particular es bastante aburrida)
Hjulle

1
@Optimizer: ¿hay un sitio SE más adecuado al que se pueda trasladar la pregunta? Dado el amplio lenguaje de scripting / macro de vim, algunas personas podrían considerarlo un lenguaje en sí mismo.
shearn89

1
@ shearn89 Hostil? De qué estás hablando ? PPCG es este sitio.
Optimizador

2
¿Por qué no se permitirían otros IDE también si puede escribir programas en su sistema macro? ¿Qué es lo que lo hace "no programar"?
Hjulle

Respuestas:


40

11 8 7 pulsaciones de teclas

YpVkr#p

Yp - duplicate current line, leaving the cursor at the lower of the two
V - enter visual line mode
k - go up and select both lines
r# - replace every selected character with #. Leaves visual mode and leaves cursor at the upper line.
p - put the yanked line (the original) on the next line.

(gracias al pomo de la puerta por recordar Y = aa)


3
Reemplazar yycon Ypara guardar un personaje.
Pomo de la puerta

2
Wow, ese rcomando es poderoso
solo el

10

16 15 14 pulsaciones de teclas

Yp
:s/./#/g
<cr>
YkP

El enfoque directo: duplicar la línea, reemplazar todos los caracteres con #, copiar el resultado y pegarlo arriba.

Estoy contando Py :como una pulsación de tecla cada uno (en lugar de dos para Shift+ po Shift+ ;). Dicho esto, la pregunta especifica contar "comandos", donde no estoy seguro de cómo contar la sustitución.


El mismo comentario que en la respuesta de @ rcrmn: Reemplace yycon Ypara guardar un personaje.
Pomo de la puerta

Creo que en realidad son 14 pulsaciones de teclas, ya que debe presionar Intro para ejecutar el comando de reemplazo
rorlork

@rcrmn Oh, buena captura.
Martin Ender
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.