Nerdkrams
Wie ich ein­mal dem histo­ri­schen vi nach­forsch­te (und alle davon pro­fi­tier­ten)

Vim – der die­ser Tage meist­ver­wen­de­te Nach­bau des BSD-Text­edi­tors vi – ist bekannt­lich ein Text­edi­tor mit reich­hal­ti­gem histo­ri­schem Bal­last; immer­hin gehen sei­ne Ursprün­ge auf die Arbeit von Bill Joy, Füh­rungs­fi­gur der frü­hen BSD-Ver­sio­nen, zurück. Ich bin nicht völ­lig unzu­frie­den damit, das Erbe des ver­stor­be­nen Bram Moo­len­aar fort­zu­füh­ren, indem ich eine auf sei­nen Wunsch hin ent­stan­de­ne Win­dows­ver­si­on bis heu­te pfle­ge.

Nun hat Vim den histo­ri­schen Bal­last von vi nie­mals völ­lig abge­wor­fen, und so ist es immer noch zumin­dest theo­re­tisch mög­lich, eine Kon­fi­gu­ra­ti­ons­da­tei aus vi in Vim zu nut­zen. Dabei ist es neue­ren Ent­wick­lun­gen (und bis­wei­len bewuss­ten Ent­schei­dun­gen) geschul­det, dass man­che Optio­nen schlicht ent­fal­len sind. Der alte vi lief auf Hard­ware, die heu­te kaum mehr exi­stiert, ent­spre­chend war er in man­cher Hin­sicht anders kon­fi­gu­riert als das heu­ti­ge Vim. In Vim gibt es daher bis heu­te – :help vi-differences – eine infor­ma­ti­ve Hilf­e­sei­te, die über die Unter­schie­de infor­miert.

Zu die­sen Unter­schie­den zäh­len auch Optio­nen, die mitt­ler­wei­le nicht mehr vor­han­den sind (und deren Vor­han­den­sein inso­fern fol­gen­los bleibt). beautify zum Bei­spiel – Stan­dard: aus. open – Stan­dard: an. Und flash – Stan­dard: unbe­kannt. Moooooo­ment. So etwas füt­tert immer mei­nen natür­li­chen Jagd­trieb. Ande­re Män­ner gehen tan­zen und bag­gern, ich gehe alten Quell­code lesen. Es galt her­aus­zu­fin­den, wie die Stan­dard­ein­stel­lung der flash-Opti­on lau­te­te. Wegen der Doku­men­ta­ti­on. Ist wich­tig.

Man soll­te dazu wis­sen, dass vi als Erwei­te­rung des nicht gra­fi­schen Text­edi­tors ex von Bill Joy, den ich ja bereits erwähnt habe, als Teil von des­sen Pro­gramm­samm­lung für Unix, der „Ber­ke­ley Soft­ware Dis­tri­bu­ti­on“ (BSD), ent­wickelt wor­den war. Die frü­hen Unix- und BSD-Ver­sio­nen sind erfreu­lich voll­stän­dig doku­men­tiert, doch eine Opti­on für flash ist nicht zu fin­den; selbst in V10 UNIX, der letz­ten Ver­si­on von Unix, bevor des­sen Schöp­fer mit Plan 9 ein grund­le­gend neu­es System zu ent­wickeln begon­nen hat­ten, ist die Opti­on nicht zu fin­den, wohl aber in den bis­her letz­ten Ver­sio­nen von ex/vi, deren Ursprung auf ver­schie­de­ne Vari­an­ten von vi zurück­geht. Fün­dig wur­de ich schließ­lich im Quell­code von SVR2 („System V Release 2“), das 1984 von AT&T für den Super­mi­ni­com­pu­ter VAX-11/780 ver­öf­fent­licht wor­den war; dort – anders als in der ersten Ver­si­on von System V – tauch­te die Opti­on flash, stan­dard­mä­ßig „an“ (also „1“), anschei­nend erst­mals auf. Das ergibt durch­aus Sinn, weil gra­fi­sche Anzei­gen damals noch eine recht neue Erschei­nung waren und das Auf­blit­zen des Bild­schirms inso­fern nicht als tech­nisch mög­lich vor­aus­ge­setzt wer­den konn­te.

In Vim 9.1.0413 ist die­se Lücke in der Vim­do­ku­men­ta­ti­on inso­fern beho­ben wor­den. Die Ände­rung ist recht klein, und ich gehe davon aus, dass kaum jemand sie über­haupt bemer­ken wird. Um sie anzu­re­gen, hat der Autor die­ser Zei­len aller­dings meh­re­re Stun­den Arbeit inve­stiert und dabei viel über die Unter­schie­de zwi­schen den ver­schie­de­nen Ent­wick­lungs­zwei­gen von Unix gelernt.

Bit­te­schön.