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.