Książka Green Eggs and Ham autorstwa Dr. Seuss jest znana z tego, że w całej historii książki zawiera tylko 50 różnych słów.
Twoim zadaniem jest utworzenie sekwencji naciśnięć klawiszy, która spowoduje, że cały tekst Zielonych Jaj i Szynki zostanie zastosowany do pustego pliku w edytorze tekstu vim , zaczynając w trybie normalnym ze wszystkimi ustawieniami domyślnymi. Twoje naciśnięcia klawiszy nie mogą ładować żadnych innych plików w ramach ich operacji - cały tekst musi być generowany w samym edytorze.
Ostateczny bufor musi wyglądać dokładnie tak, jak ten plik , chociaż może pozostać w dowolnym trybie, w którym się znajduje (nie trzeba mieć finału, <Esc>
aby przywrócić go do trybu normalnego).
Akordowe naciśnięcia klawiszy, takie jak <C-o>
Shift lub wpisywanie dużej litery, są liczone jako pojedyncze naciśnięcie klawisza.
Wygrywa sekwencja najmniejszej liczby naciśnięć klawiszy, aby osiągnąć ten cel.
źródło
.vimrc
pliku.<Esc>
wychodzić z trybu wstawiania, ale musisz zacząć normalnie.Odpowiedzi:
1864 naciśnięcia klawiszy
Ktoś prawdopodobnie mógłby napisać jakiś kod, który stworzy bardziej optymalne rozwiązanie, ale na razie jest to nieistotne. To cholerny bałagan i wstydzę się, że zrobiłem to ręcznie.
Najpierw wchodzimy w tryb wstawiania.
To wszystko
Naciśnij klawisz Escape, aby przejść do trybu poleceń. I rozwikłać skompresowane rzeczy. Kolejność ma znaczenie, ponieważ skompresowałem trochę skompresowanego tekstu.
źródło
so good;so good;
się<Esc>2aso good;<Esc>a
, można zapisać trzech klawiszy. NaiThat ]! That]!<Enter>
początku zamień też2iThat ]! <Esc>xo
na kolejne trzy.DN
nie pojawia się w innym miejscu, można usunąćI
zIDN
iI do not
w rachunku zastąp tych dwóch wyrażeń w nim.IDNlike$!<Enter>|;].
z1
i wejście%s/1/IDNlike$!\n|;]./g
do zaoszczędzić około 20 klawiszy lub tak.3470 naciśnięć klawiszy
Plik tekstowy ma długość 3469 znaków, więc wpisanie „i” w celu wprowadzenia go w tryb wstawiania i wpisanie każdego znaku osobno zajmie 3470 naciśnięć klawiszy.
źródło