Stellen Sie sich vor, Sie hätten eine beliebige Textdatei (die Sie auswählen können).
Geben Sie die Tastenfolge an, die am destruktivsten ist (*), wenn sie in den Text eingefügt werden soll, aber stattdessen im normalen Modus eingegeben wurde (dh i/ anicht gedrückt wurde). Sie dürfen den visuellen Modus nicht aufrufen und Vim nicht beenden.
Destruktiv ist wie folgt definiert: Das Verhältnis von geänderten / gelöschten Zeichen zur Anzahl der erforderlichen Tastenanschläge.
Sie erhalten Bonuspunkte, wenn Ihre Änderungen nicht durch eine feste Anzahl von undos rückgängig gemacht werden können.
Beispiel: Eingabedatei ohne Zeilenumbrüche. Eingabesequenz : dfs.
code-challenge
vim
Bitmaske
quelle
quelle
Antworten:
ruiniert alles nicht rückgängig machen
quelle
:0,0 w
sollte Zeilen 0 bis 0 schreiben und:r
würde es dann (jetzt leer) wieder einlesen, ich habe aber nicht wirklich ein vim, um es zu testen: 0,0 w
schreibt er einen Teilpuffer, also weigert sich (mein) Vim, ihn zu speichern, muss ichw!
stattdessen sagenw
. So weit so gut, jetzt:r
wird die Datei nicht wieder geöffnet. Stattdessen müssen Sie angeben,:e
welche Datei aus dem Dateisystem eingelesen wird. Obwohl mit diesen Änderungen der Puffer geändert wird, ist der Puffer bei weitem nicht leer. Es enthält die erste Zeile (weil Sie "0,0" gespeichert haben). Zumindestu
funktioniert ndoing nicht.Dadurch wird der Inhalt der Datei gelöscht und gespeichert. Ein Rückgängigmachen ist nicht möglich, da
undolevel
es auf eine negative Zahl gesetzt ist, wodurch der Rückgängig-Vorgang deaktiviert wird.Edit: Es ist besser , zu schreiben ,
:g/^/d
stattggdG
, weil in diesem Fall die Sie verwenden könnenp
(Put) zum Roll-back die Änderungen.quelle
ggdG
könnte ersetzt werden durch:%d
ggdG
, dass es durch Setzen von (p
) invertiert werden kann ,:g/^/d
scheint also immer noch eine bessere Option zu sein :):%d_
ist kürzer als:g/^/d
und löst auch dasput
Problem.Biegen Sie die Regeln, weil ich Zeichen hinzufüge (ein Zeichen, das nicht vorhanden ist und jetzt vorhanden ist, bedeutet, dass ein Zeichen geändert wurde). Ich kann so viele Zeichen hinzufügen, wie ich möchte, so dass diese Punktzahl theoretisch unendlich ist.
quelle
5 Bytes:
gefolgt von einer Eingabetaste.
Wirft den aktuellen Status der Datei, die Sie bearbeiten, aus dem Speicher weg, sodass alle nicht gespeicherten Änderungen in dieser Datei verloren gehen. Wenn Sie andere Dateien geöffnet haben, sind diese nicht betroffen. Dies beendet vim nicht, selbst wenn nur eine Datei geöffnet ist.
quelle