Ihre Aufgabe ist es, ein Vim-Skript zu erstellen oder eine Folge von Tastenanschlägen bereitzustellen, die eine einzelne Textzeile mit bis zu 140 druckbaren ASCII-Zeichen (an einer beliebigen Stelle in einer Datei, wobei der Cursor an einer beliebigen Stelle in der Zeile beginnt) ausführen und jedes Leerzeichen umkehren. getrennte Zeichenfolge im Satz, während die Zeichenfolgen in derselben Reihenfolge gehalten werden.
Zum Beispiel die Eingabe:
roF emos nosaer m'I gnisu a retcarahc-041 timil no siht noitseuq neve hguoht ti t'nseod evlovni .rettiwT RACECAR
sollte zurückkehren:
For some reason I'm using a 140-character limit on this question even though it doesn't involve Twitter. RACECAR
Das Skript mit den wenigsten Zeichen oder der Folge der wenigsten Tastenanschläge, um dieses Ergebnis zu erzielen, ist der Gewinner.
Antworten:
282524 TastenanschlägeRekursives Makro, ich gehe davon aus, dass Ctrl- rals ein Tastendruck zählt.
Am schwierigsten war es, sicherzustellen, dass das Makro in derselben Zeile bleibt und den Rest der Datei nicht zerstört.
quelle
cE
stattdessen verwendenct
, wenn das Makro nicht beendet wird. Aber Sie können verwendenW
anstelle vonf l
2 - Takter zu speichern.cE
passiert, wenn sich der Cursor am Anfang von befindeta retcarahc-041
? Und raten Sie mal, wasW
passiert, wenn wir am Ende der Leitung stehen?E
. Kleinbuchstabene
würden bis zum Bindestrich gehen, KapitalE
würde bis zum nächsten Leerzeichen gehen. Ich habe es nur versucht, um zu bestätigen.:set ri<Enter>^qqct <C-r>"<Esc>W@qq@q
für 23.E
was das betrifft, weiß ich, was es tut. Ich bezog dascE<C-r><Esc>
würde sicha retcarahc-041
in140-character a
AKA wäre es die Worte tauschen.24 Tastenanschläge
Ich weiß , diese Frage ist sehr alt, aber ich liebe vimgolf so konnte ich nicht nicht eine Antwort auf eine der wenigen vim spezifischen Herausforderungen auf der Website veröffentlichen. Außerdem ist diese Lösung mit der von Orlp verbunden.
Genau wie Orlp sagte, war es am schwierigsten sicherzustellen, dass der Rest des Puffers unverändert blieb. Ohne diese Einschränkung könnten wir einfach Folgendes tun:
(19 Tastenanschläge), aber wir brauchen ein bisschen mehr, um es puffersicher zu halten. Dies setzt eine Unix-Umgebung voraus.
quelle