No sucede tan a menudo como parece, pero sucede ocasionalmente, y ni siquiera tengo un gato.
Básicamente, si combina la fila numérica o el teclado numérico y luego golpea una combinación de teclas que activa un comando repetible, es posible ordenarle inadvertidamente a Vim que realice una tarea varios miles, millones o incluso miles de millones de veces. Esto se descontrola fácilmente y puede provocar la pérdida de datos.
Entonces, me pregunto si hay una configuración o algo en el código fuente que podamos cambiar para que sirva como un control de cordura para evitar este tipo de DoS.
normal-mode
repeated-commands
Steven Lu
fuente
fuente
144477@@
o99999.
y desea detener esas ejecuciones cuando el número es demasiado grande? Estoy en lo cierto? (Tengo que preguntar porque eso me parece un poco extraño, nunca tuve este problema)set showcmd
para mostrar las teclas que ha escrito en la esquina inferior derecha..vimrc
, para que la respuesta sea completamente autónoma)Respuestas:
Creo que normalmente puedes interrumpir el proceso de repetición enviando un SIGINT ( Ctrl+C). Mientras algún vimscript no ejecute un bucle interno realmente largo, no hay preocupación DoS.
Vea aquí un ejemplo de un complemento que puede contener una función que se repite dependiendo del número ingresado.
Para casi todos los propósitos, este problema aquí es hipotético.
fuente
<Esc>
, no necesita usar<C-c>
. La diferencia es que<C-c>
aborta todo lo que Vim está haciendo (como ejecutar una función), y<Esc>
no lo hace. Casi nunca quieres usar a<C-c>
menos que quieras "matar" algo.