Es kommt nicht so oft vor, wie man denkt, aber es kommt gelegentlich vor, und ich besitze nicht einmal eine Katze.
Grundsätzlich ist es möglich, Vim versehentlich zu befehlen, eine Aufgabe mehrere tausend, Millionen oder sogar milliardenfach auszuführen, wenn Sie die Zahlenreihe oder das Nummernfeld zerdrücken und dann zufällig eine Tastenkombination drücken, die einen wiederholbaren Befehl auslöst. Dies gerät leicht außer Kontrolle und kann zu Datenverlust führen.
Ich frage mich also, ob der Quellcode eine Konfiguration oder etwas enthält, das wir ändern können, um als Überprüfung der Integrität zu dienen und diese Art von DoS zu verhindern.
normal-mode
repeated-commands
Steven Lu
quelle
quelle
144477@@
oder99999.
und möchten diese Ausführungen stoppen, wenn die Anzahl zu groß ist? Habe ich recht? (Ich muss fragen, weil mir das ein bisschen komisch vorkommt, ich hatte dieses Problem nie)set showcmd
Sie die eingegebenen Tasten in der unteren rechten Ecke anzeigen..vimrc
, damit die Antwort vollständig in sich geschlossen ist.)Antworten:
Ich finde, dass Sie normalerweise in der Lage sind, den Wiederholungsprozess durch Senden eines SIGINT ( Ctrl+C) zu unterbrechen . Solange in einigen Vimskripten keine wirklich lange innere Schleife ausgeführt wird, gibt es keine DoS-Bedenken.
Sehen Sie hier ein Beispiel für ein Plugin enthalten eine Funktion , die auf die eingegebene Nummer Schleifen abhängig.
In fast jeder Hinsicht ist dieses Problem hier hypothetisch.
quelle
<Esc>
, Sie müssen nicht verwenden<C-c>
. Der Unterschied besteht darin, dass<C-c>
alles abgebrochen wird, was Vim tut (z. B. eine Funktion ausführen), und<Esc>
dies nicht tut. Sie möchten fast nie verwenden, es<C-c>
sei denn, Sie möchten etwas "töten".