Imagina que tienes un archivo de texto arbitrario (que puedes elegir).
Proporcione la secuencia de pulsaciones de teclas que es más destructiva (*) si se pretendía insertar en el texto, pero en su lugar se ingresó en modo normal (es decir, i/ ano se presionó). No puede ingresar al modo visual y no salir de Vim.
Destructivo se define de la siguiente manera: la relación de caracteres modificados / eliminados por la cantidad de pulsaciones de teclas necesarias.
Obtiene puntos de bonificación si sus cambios no se pueden deshacer con un número fijo de undos.
Ejemplo: archivo de entrada sin saltos de línea. Secuencia de entrada: dfs.
code-challenge
vim
máscara de bits
fuente
fuente
Respuestas:
arruina todo sin deshacer
fuente
:0,0 w
debe escribir líneas 0 hasta 0 y:r
entonces leerlo (ahora vacío) de nuevo, realmente no tengo una vim para probarlo aunque: 0,0 w
escribe un búfer parcial, por lo que (mi) Vim se niega a guardarlo, debo decir que enw!
lugar dew
. Hasta ahora todo bien, ahora:r
no vuelve a abrir el archivo. En cambio, tiene que decir:e
cuál leerá en el archivo del sistema de archivos. Sin embargo, aunque con estas modificaciones cambia el búfer, el búfer está lejos de estar vacío. Contiene la primera línea (porque guardó "0,0"). Al menos haceru
ndo no funciona.Esto borra el contenido del archivo y lo guarda. No es posible deshacer porque
undolevel
está configurado en un número negativo, lo que desactiva la operación de deshacer.Editar: es mejor escribir en
:g/^/d
lugar de hacerloggdG
, porque en este último caso puede usarp
(poner) para revertir los cambios.fuente
ggdG
podría sustituirse por:%d
ggdG
que se puede invertir poniendo (p
), por lo que:g/^/d
parece una mejor opción :):%d_
es más corto que:g/^/d
y también resuelve elput
problema.Doblar las reglas, porque estoy agregando caracteres (un carácter que no está allí y ahora lo está, significa que se cambió un personaje). Puedo agregar tantos caracteres como quiera para que esta puntuación sea teóricamente infinita.
fuente
5 bytes:
seguido de una pulsación de enter.
Desecha el estado actual del archivo que está editando de la memoria, por lo que se pierden todos los cambios no guardados en ese archivo. Si tiene otros archivos abiertos, no se verán afectados. Esto no cierra vim incluso si solo tiene un archivo abierto.
fuente