tar.vim

Von in linux, vim

Ange­nom­men man wäre mit der Kon­so­le über SSH mit einem fer­nen Rech­ner ver­bun­den, wühl­te in den Verzeichnis-​Tiefen eines Pro­jek­tes und stie­ße plötz­lich auf ein unbe­kann­tes tar.gz File. Dem Namen nach dürf­te es einst zum Update des Pro­jek­tes ver­wen­det wor­den sein, ver­wais­te dann aber, weil man auf das Löschen des­sel­ben ver­gaß. Wie aber stell­te man nun fest, wel­che Daten sich in der Teer­ku­gel (tar­ball) befin­den?

Orts­kun­di­ge wer­den in der Kon­so­le sofort den Befehl “tar” mit der Opti­on “-t” auf die Datei los­las­sen, was den Inhalt des­sel­ben lis­tet. Dabei stellt sich her­aus, dass besag­tes File noch sei­ne Daseins­be­rech­ti­gung hat, jedoch eine klei­ne Ände­rung in einem der gekleb­ten und gepack­ten Files benö­tigt, um wie­der aktu­ell zu wer­den. Was also tun? Das gan­ze Paket in einen tem­po­rä­ren Ord­ner aus­pa­cken, Ände­rung durch­füh­ren und dann wie­der zuma­chen?

Das wäre sicher nicht falsch. Ein­fa­cher gin­ge es aber mit Vim. Über den Befehl “vim file.tar” oder eben “vim file.tar.gz” öff­net Vim das File über das Plug­in “Tar Explo­rer” (dazu spä­ter mehr) und lis­tet uns, ähn­lich dem Befehl “tar -t file­na­me”, den Inhalt des Pake­tes. Dies­mal ist die Lis­te jedoch inter­ak­tiv. Mit den Cur­sor­tas­ten kann man nun ein File aus­wäh­len und mit der Enter-​Taste öff­nen (Ach­tung, es wer­den auch Ord­ner gelis­tet). Anschlie­ßend lässt sich der Inhalt her­kömm­lich edi­tie­ren. Been­det man die Ände­rung mit :wq, schreibt Vim brav die Modi­fi­ka­ti­on in die Datei und hängt sie nach einem wei­te­ren :q in das Archiv wie­der ein.

Dabei sind fol­gen­de Din­ge zu beach­ten:
Das edi­tier­te File befin­det sich nun am Ende der Lis­te (das kommt aber erst nach erneu­tem Öff­nen des Archivs zu tra­gen. Vim zeigt nach Schlie­ßen des edi­tier­ten Files eine gespei­cher­te Anzei­ge). Das ver­deut­licht auch schön die Arbeits­wei­se des “Tape archi­vers” (tar), der die Files qua­si anein­an­der­klebt und dadurch vie­le Datei­en zu einer ein­zi­gen Datei macht. Nimmt man mit Vim eines her­aus und edi­tiert es, wird es anschlie­ßend an das Ende der Ket­te ange­hängt.

Beim Öff­nen des geteer­ten und/​oder kom­pri­mier­ten Files springt Vim an das Ende der Lis­tung. Ein “gg” lässt Vim den Anfang der Lis­te anzei­gen. (“GG” zeigt das Ende der­sel­ben).

Außer­dem gibt Vim beim Öff­nen einer Datei aus der Lis­te am unte­ren Bild­schirm das tar-​File als [RO] an, also als “read only”. Trotz aus­führ­li­cher Recher­che habe ich kei­ne Erklä­rung für die­ses [RO] gefun­den, ich kann also nur eine Ver­mu­tung anstel­len: Das “read only” meint offen­bar nicht, dass die ein­zel­nen Datei­en nicht edi­tier­bar wären, son­dern dass in der Auf­lis­tung kei­ne neue Datei ein­ge­fügt wer­den kann. Ich kann mich aber auch irren.

Der “Tar Explo­rer” muss übri­gens nicht extra instal­liert wer­den, denn er zählt zu den Stan­dard Plug­ins von Vim. Vor­aus­set­zung ist aller­dings eine voll­stän­di­ge Instal­la­ti­on (also nicht etwa das Paket vim tiny). Dass der Tar Explo­rer auch gezipp­te Files öff­nen kann, ver­dankt er einem Update im Okto­ber 2005. Die letz­te Aktua­li­sie­rung erfuhr das Plug­in im August 2008.

Share on Google+Share on RedditTweet about this on TwitterShare on LinkedInShare on FacebookShare on XingEmail this to someone