Nerdkrams
Kein Spuk: Tex­te im Web siche­rer tip­pen mit GhostText.

Wenn man den Feh­ler macht, den Heils­ver­spre­chun­gen derer, die am lieb­sten das kom­plet­te Betriebs­sy­stem in den Web­brow­ser schie­ben wür­den, zu glau­ben, wird man grund­sätz­lich im unpas­send­sten Moment dar­an erin­nert, war­um das eine furcht­ba­re Idee ist: Ver­ab­schie­det sich der Web­brow­ser, ver­ab­schie­det sich auch alles, was man gera­de for­mu­liert hat. Wenn sich die eige­nen Bei­trä­ge im Web nicht gera­de auf Hash­tag­wel­len auf Insta­gram oder gram­ma­ti­ka­lisch nicht emp­feh­lens­wer­te Kurz­tex­te auf Twit­ter beschrän­ken, dann könn­te das unter Umstän­den eher unan­ge­nehm wer­den. Wer tippt schon gern über Stun­den – wenn nicht: Tage, gar Wochen – aus­ge­feil­te Tex­te gern ein zwei­tes Mal von vorn?

Eini­ge „Web­an­wen­dun­gen“ – allein das Wort schon! – ver­su­chen die­sem selbst ver­ur­sach­ten Pro­blem inzwi­schen ent­ge­gen­zu­wir­ken; die Foren­soft­ware Xen­Fo­ro und die Blog­soft­ware Word­Press etwa spei­chern den Bei­trag, den man gera­de tippt, in kur­zen Abstän­den in einem Zwi­schen­spei­cher, nach einem Neu­start des Systems ist somit wenig­stens ein Groß­teil des Geschrie­be­nen noch nicht ver­lo­ren. Dass die Zuver­läs­sig­keit also vom Dienst selbst abhängt, hat in der Ver­gan­gen­heit diver­se Ent­wick­ler zum Pro­gram­mie­ren von Brow­ser­er­wei­te­run­gen ver­an­lasst, etwa Text­area Cache, das sich die Inhal­te von Text­fel­dern wäh­rend des Schrei­bens „merkt“ und das Gemerk­te für spä­te­re Sit­zun­gen vor­hal­ten kann. Die inzwi­schen ein­ge­stell­te Fire­fo­xer­wei­te­rung It’s All Text! ging sogar noch einen Schritt wei­ter und ver­knüpf­te den jeweils bevor­zug­ten Text­edi­tor direkt mit die­sen Text­fel­dern, so dass man den Text im Brow­ser nur noch abschicken muss­te. Seit Fire­fox kaum noch von Chro­me zu unter­schei­den ist, ist das aber vorbei.

Wohl dem, der recht­zei­tig für Ersatz gesorgt hat. Wohl dem, der Ghost­Text kennt.

Was macht Ghost­Text denn überhaupt?

Ghost­Text ermög­licht eine Anbin­dung jedes Text­edi­tors an den Web­brow­ser (sofern die­ser Web­brow­ser Chro­me, Fire­fox oder Ope­ra ist – ande­re auf Chro­mi­um basie­ren­de Web­brow­ser kön­nen, müs­sen aber nicht, auch funk­tio­nie­ren). Hier­für kom­mu­ni­ziert es nach der Aus­wahl eines Text­felds per Web­Socket mit belie­bi­gen Anwen­dun­gen, die einen geeig­ne­ten Ser­ver auf Port 4001 bereit­stel­len kön­nen. Mit die­sen Anwen­dun­gen tauscht Ghost­Text der­zeit (sofern jeweils vor­han­den) den Titel, den URL, den Inhalt und die Cur­sor­auswahl des Text­felds aus. Das Pro­to­koll ist auf Git­Hub dokumentiert.

Die­se Tech­nik funk­tio­niert natür­lich vor allem in Ver­bin­dung mit einem Text­edi­tor gut.

Aber wel­cher Texteditor?

Die zweitschönste Art von Pornografie: Screenshots von Texteditoren.Über die Fra­ge, wel­chen Text­edi­tor ich emp­feh­len kann und war­um man nicht statt­des­sen einen ande­ren neh­men soll­te, könn­te ich Bücher oder wenig­stens Bild­schirm­sei­ten fül­len. Als ich das aber zuletzt ver­sucht habe, habe ich es weni­ge Jah­re spä­ter bereut. Auch ich selbst neh­me längst davon Abstand, einen bestimm­ten Text­edi­tor als das Maß aller Din­ge zu begrei­fen; die­sen Text etwa schrei­be ich in dead­pi­xis sam, weil mir gera­de danach ist, und hät­te ich fünf Minu­ten spä­ter ange­fan­gen, so hät­te ich viel­leicht einen ande­ren benutzt. Ich benut­ze der­zeit mehr oder weni­ger regel­mä­ßig sechs ver­schie­de­ne Text­edi­to­ren für unter­schied­li­che Zwecke, gele­gent­lich kom­men auch mal ein sieb­ter und ein ach­ter hinzu.

Eigent­lich spricht nichts dage­gen, zum erst­be­sten Text­edi­tor, und sei’s ed, zu grei­fen, prak­tisch hin­ge­gen ist das unter Umstän­den mit Kom­fort­ver­lust ver­bun­den, denn Ghost­Text selbst kennt zwei Arten der Ver­bin­dung. Der Ent­wick­ler wirbt momen­tan mit der Echt­zeit­ver­si­on, hier­für benö­tigt man einen der unter­stütz­ten Text­edi­to­ren – das sind der­zeit Sub­li­me Text, Atom, Visu­al Stu­dio Code, Vim, Neo­Vim, GNU Emacs und sogar Acme – und die jeweils pas­sen­de Erwei­te­rung. Der Rest funk­tio­niert, je nach Edi­tor, meist weit­ge­hend auto­ma­tisch, wie ich in einem kur­zen Test mit der GNU-Emacs-Ver­si­on fest­ge­stellt habe. Die wei­te­re Lek­tü­re mei­nes fol­gen­den Geschwalls wäre in die­sem Fall ohne ersicht­li­chen Mehr­wert. Bevor­zugt man jedoch einen ande­ren Text­edi­tor, so soll man zu It’s All Ghosts greifen.

Tut man das, so ist die Wahl des Text­edi­tors völ­lig egal, unter­stützt wird wohl jeder, der Datei­na­men als Auf­ruf­pa­ra­me­ter akzep­tiert. Der benut­zer­sei­ti­ge Unter­schied zu den offi­zi­el­len und halb­of­fi­zi­el­len Edi­tor­plug­ins ist, dass It’s All Ghosts sich, daher wohl der Name, bei­na­he wie das gute alte It’s All Text! ver­hält: Es gibt kei­ne Live­ak­tua­li­sie­rung, statt­des­sen wird der Text erst in den Web­brow­ser über­nom­men, wenn der Edi­tor been­det wird. Das wird erst dann zu einem Pro­blem, wenn der Text­edi­tor (oder der Com­pu­ter) selbst abstürzt und kein Back­up der aktu­el­len Edi­tor­sit­zung vor­liegt. In dem Fall emp­feh­le ich einen ande­ren Text­edi­tor oder ein ver­nünf­ti­ges Maß an Fata­lis­mus und/oder Sar­kas­mus. Da es sich mir nicht erschließt, war­um man für das Bear­bei­ten von blo­ßem Text unbe­dingt eine gra­fi­sche Ober­flä­che haben muss, spricht wenig­stens für die­sen Anwen­dungs­fall nichts gegen einen kon­so­len­ba­sier­ten Edi­tor. Ein sol­cher ist zumeist noch immer kom­for­ta­bler zu benut­zen als eine text­area, wenn man sich nicht gera­de mit wei­te­ren Brow­ser­er­wei­te­run­gen behel­fen möch­te, und belegt anders als „moder­ne“ Alter­na­ti­ven nur weni­ge System­res­sour­cen. Davon kann man bekannt­lich nie genug haben.

Wenn man nicht gera­de Win­dows nutzt (denn unter Win­dows ist sei­ne Unter­stüt­zung für die Kom­man­do­zei­le noch eher mau), aber sich für unge­wohn­te Kon­zep­te begei­stern kann, könn­te poe einen Blick wert sein, ein nicht übler Nach­bau des Text­edi­tors Acme, der sich eben­so wie sein Vor­bild kom­plett mit der Maus bedie­nen lässt. Ich hör­te, das wer­de von vie­len Men­schen als Vor­teil ver­stan­den. Anson­sten habe ich den tasta­tur­freund­li­chen Edi­tor micro als gut genug bedien­bar wahr­ge­nom­men. Wer – wie ich – cmd nicht über­mä­ßig gut lei­den kann, der möge, da Console2 anschei­nend nicht mehr gepflegt wird, sich ein­mal ConE­mu anse­hen, das sich auch als System­stan­dard set­zen lässt; micro wird dann auto­ma­tisch in ConE­mu statt in cmd gestartet.

Instal­la­ti­on

An not­wen­di­ger Soft­ware haben wir nun also die fol­gen­de zusammengetragen:

  • Einen brauch­ba­ren Texteditor.
  • Eine brauch­ba­re Kon­so­le (optio­nal, je nach System und Texteditor).
  • Ghost­Text (die jewei­li­ge Browsererweiterung).
  • It’s All Ghosts.
  • Python 3 (für It’s All Ghosts).

Ich gehe im Fol­gen­den davon aus, dass mei­ne obi­gen Emp­feh­lun­gen wenig­stens teil­wei­se berück­sich­tigt wer­den. Unter Win­dows bie­tet es sich an, bei die­ser Gele­gen­heit, sofern noch nicht gesche­hen, das her­vor­ra­gen­de Cho­co­la­tey zu instal­lie­ren, denn das macht die Instal­la­ti­on der übri­gen Soft­ware etwas weni­ger auf­wen­dig – der Admi­ni­stra­tor muss anschlie­ßend zur Instal­la­ti­on von micro, ConE­mu und Python nur noch fol­gen­den Befehl ein­tip­pen oder ‑kopie­ren:

$ cinst micro conemu python3

Ande­re Kon­so­len und Text­edi­to­ren sind nach Belie­ben auf ähn­li­che Wei­se zu instal­lie­ren. Anson­sten spricht außer etwas mehr Auf­wand auch nichts gegen eine hän­di­sche Instal­la­ti­on der gewünsch­ten Komponenten.

Ein­rich­tung

It’s All Ghosts ist ein nicht beson­ders unge­wöhn­li­ches Python-3-Paket und lässt sich auch als ein sol­ches installieren:

$ pip install ItsAllGhosts

Wenn das nur einen Feh­ler aus­gibt, könn­te pip3 ein bes­ser funk­tio­nie­ren­der Befehl sein:

$ pip3 install ItsAllGhosts

Sofern Cho­co­la­tey instal­liert ist, genügt jetzt refres­henv, anson­sten soll­te (unter Win­dows) die Kon­so­le ein­mal neu gestar­tet wer­den, um die neu­en Pfa­de zu fin­den. Anschlie­ßend soll­te der Befehl its­allg­hosts zur Ver­fü­gung stehen.

It’s All Ghosts ver­sucht stan­dard­mä­ßig Note­pad++ (Win­dows) oder uxterm mit nano (Unix, Linux, BSD) zu benut­zen. Die­ses Ver­hal­ten lässt sich ändern, indem man eine eige­ne Kon­fi­gu­ra­ti­ons­da­tei schreibt.

Win­dows

Es ist unter C:\Users\<Benutzer>\.config\ – gege­be­nen­falls mit­tels echo %XDG_CONFIG_HOME% vor­her prü­fen, ob der Ord­ner expli­zit woan­ders liegt, nor­ma­ler­wei­se soll­te das aber nicht der Fall sein – eine neue Datei namens itsallghosts.cmd anzu­le­gen, die den gewünsch­ten Edi­tor auf­ruft. Für micro sieht das zum Bei­spiel so aus:

micro "%*"

It’s All Ghosts ersetzt %* durch den Pfad zu der tem­po­rä­ren Datei, die ange­legt und bear­bei­tet wird – Anfüh­rungs­zei­chen sind (wegen mög­li­cher Leer­zei­chen) hier also durch­aus zu empfehlen.

Unix, Linux, BSD

Es ist unter ~/.config – gege­be­nen­falls mit­tels echo $XDG_CONFIG_HOME vor­her prü­fen, ob der Ord­ner expli­zit woan­ders liegt, nor­ma­ler­wei­se soll­te das aber nicht der Fall sein – eine neue Datei namens itsallghosts_cmd anzu­le­gen, die den gewünsch­ten Edi­tor in der gewünsch­ten Kon­so­le auf­ruft. Für micro in einer KDE-Kon­so­le sieht das zum Bei­spiel so aus:

exec konsole --separate -e micro "$*"

Ich habe das jetzt nicht gete­stet, gehe aber davon aus, dass ich kei­nen völ­li­gen Unsinn geschrie­ben habe. It’s All Ghosts ersetzt $* durch den Pfad zu der tem­po­rä­ren Datei, die ange­legt und bear­bei­tet wird – Anfüh­rungs­zei­chen sind (wegen mög­li­cher Leer­zei­chen) hier also durch­aus zu empfehlen.

Nut­zung

its­allg­hosts stellt auf Port 4001 eine Schnitt­stel­le zu dem ein­ge­stell­ten Edi­tor bereit, die übli­che Ghost­Text-Erwei­te­rung soll­te also in der Lage sein, mit ihm zu kom­mu­ni­zie­ren. Hier­für soll­ten, sofern nie­mand einen Feh­ler gemacht hat, nach dem Start der Anwen­dung ein Klick auf das Ghost­Text-Sym­bol im Brow­ser und eine Aus­wahl des gewünsch­ten Text­fel­des, das dann einen hell­blau „schim­mern­den“ Rand bekommt, genügen.

GhostText (vorher)

Hat man das Text­feld aus­rei­chend gefüllt, kann die Datei gespei­chert (Strg‑S) und der Text­edi­tor geschlos­sen (Strg‑Q) wer­den. Die Inhal­te soll­ten anschlie­ßend im Brow­ser zu sehen sein.

GhostText (nachher)

Das war alles!

Fra­gen, Anmer­kun­gen, Kor­rek­tu­ren und/oder Lob­hu­de­lei sind auch dies­mal gern gesehen.

Senfecke:

  1. Wow, recht herz­li­chen Dank fuer den aus­fuehr­li­chen Text.
    Ich hab vie­le Din­ge ken­nen­ge­lernt die ich noch nicht kann­te (unter ande­rem auch Cho­loa­tey und Poe.

    Dein Bei­trag bie­tet vie­le inter­es­san­te Facet­ten und Links an um sich dem Pro­blem zu wid­men. Sel­bi­ges wird ein­gangs deut­lich erklaert.

    Was ich schrei­ben moech­te. Ich habe schon lan­ge nicht mehr einen solch schoe­nen Bei­trag gele­sen. Ich mer­ke wie viel Zeit und Mue­he du in dei­nen Text gesteckt hast, dankeschoen.

  2. Was spricht gegen: Editor/Textverareibtung star­ten, Text schrei­ben (ggf. manu­ell oder auto­ma­tisch sichern), Strg+a, Strg+c, Strg+v im Text­feld des Browsers?

  3. Die furcht­bar­ste Idee ist es aller­dings, der Deut­schen IT sol­che Pro­ble­me und deren Lösun­gen an und in die Hand zu geben. Das Resul­tat wird sich von Dach­au kaum unter­schei­den las­sen. FAIL! WTF Arrrrr!

    • Was soll die­ser stumpf­sin­ni­ge Ver­gleich? Pro­vo­ka­ti­on oder woll­test Du uns wirk­lich etwas mitteilen?

Comments are closed.

https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_smilenew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_biggrin2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_sadnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_eek.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_shocked.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_confusednew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_coolnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_lol.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_madnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_aufsmaul.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_seb_zunge.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_blushnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_frown.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil1.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/icon_mad.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_rolleyesnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_wink2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_idea2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_arrow2.gif 
mehr...
 
 

Erlaubte Tags:
<strong> <em> <pre> <code> <a href="" title=""> <img src="" title="" alt=""> <blockquote> <q> <b> <i> <del> <span style=""> <strike>

Datenschutzhinweis: Deine IP-Adresse wird nicht gespeichert. Details findest du hier.