Cela n'arrive pas aussi souvent que vous le pensez, mais cela arrive de temps en temps, et je n'ai même pas de chat.
Fondamentalement, si vous écrasez la ligne numérique ou le pavé numérique, puis que vous frappez un clavier qui déclenche une commande reproductible, il est possible de commander par inadvertance à Vim d'exécuter une tâche plusieurs milliers, millions, voire milliards de fois. Cela devient facilement hors de contrôle et peut entraîner une perte de données.
Je me demande donc s'il y a une configuration ou quelque chose dans le code source que nous pouvons changer pour servir de vérification de santé mentale pour empêcher ce genre de DoS.
normal-mode
repeated-commands
Steven Lu
la source
la source
144477@@
ou99999.
et vous voulez arrêter ces exécutions lorsque le nombre est trop grand? Ai-je raison? (Je dois demander car cela me semble un peu bizarre, je n'ai jamais eu ce problème)set showcmd
pour afficher les touches que vous avez tapées dans le coin inférieur droit..vimrc
, donc la réponse est entièrement autonome.)Réponses:
Je trouve que vous pouvez généralement interrompre le processus de répétition en envoyant un SIGINT ( Ctrl+C). Tant que certains vimscript n'exécutent pas une boucle interne très longue, il n'y a pas de problème DoS.
Voir ici pour un exemple de plugin qui peut contenir une fonction qui boucle en fonction du nombre entré.
À presque toutes fins utiles, cette question est ici hypothétique.
la source
<Esc>
, vous n'avez pas besoin d'utiliser<C-c>
. La différence est que cela<C-c>
annule tout ce que Vim fait (comme exécuter une fonction) et<Esc>
ne le fait pas. Vous ne voulez presque jamais l'utiliser à<C-c>
moins de vouloir "tuer" quelque chose.