|

Atom unter Ubuntu 20.04

Eigentlich bin ich eine treue Seele. Aber auch meine Geduld ist begrenzt: Die Tipps von Eclipse werden unter Ubuntu 20.04 schwarz auf schwarz angezeigt. Hmm. Markdown-Editoren sind umständlich. Oopps. Und der ‚Spellcheck‘ für deutsch-englische Texte geht immer noch nicht. Grrr. Also auf zu neuen Ufern: es reden ja eh alle schon von ‘Atom’. Geben wir ihm eine Chance, selbst wenn wir – unter Ubuntu 20.04 – dafür einige Klippen umschiffen müssen.

Legen wir zuerst genauer fest, was Atom bieten muss, um (uns) zu gefallen:

  • Rechtschreibprüfung für deutsch-englische Texte
  • bei gleichzeitigem Syntax-Highlighting
  • und Code-Completion für Latex, Markdown, HTML PHP, C/C++, Java, bash
  • Nahtlose Integration in eine mobile Laptop-Arbeitsumgebung
  • Gute Markdown-Unterstützung.

Und machen wir uns dann daran, den Editor zu installieren und zu konfigurieren:

Die Standard-Ubuntu-Methode: Geradeaus klappt’s nicht!

Mit der Version 20.04 wird das neue Snap-Paketformat zum kaum zu umgehenden Standardformat. Viele Programme – darunter ‚Atom‘ – werden schon gar nicht mehr as Debian-Pakete angeboten sondern müssen via Ubuntu-Software-Center als Snap-Pakete installiert werden. Das klappt auf den ersten Blick – und ’scheitert‘ beim nächsten Hinsehen:

  • So wurde meine erste Installation nach einigen Tagen nicht mehr im Bestand geführt: weder snap list atom noch snap list --all listete ‚Atom‘ noch auf, obwohl ich den Editor doch immer noch aufrufen konnte. Systemisch war das Paket damit auch von allen Updates abgeschnitten. Die Lösung war ’simple‘: ‚Atom‘ einfach noch einmal per Ubuntu-Software-Center installieren. Danach lies sich der Editor auch wieder finden und rückstandslos per snap remove atom entfernen (und wieder installieren)
  • Nur reagierte die Version – wie im Netz beschrieben – immer noch unschön: sie öffnete – unverhinderbar – bei jedem Aufruf zwei völlig nutzlose Dokumente.

Damit schied diese Variante aus: Wenn ich mich weiter nerven lassen wollte, hätte ich auch bei Eclipse bleiben können.

Auch der .deb-Umweg scheitert.

Die offizielle Atom-Dokumentation beschreibt zwei Wege zur Installation von Atom. Beim einfacheren Weg lädt man sich das .deb-Paket herunter und installiert es mit sudo dpkg -i atom-amd64.deb. Leider scheitert das unaufgelöster Abhängigkeiten wegen.

Aber wenigstens komplexe Weg führt weiter …

Dabei lädt man zuerst den Schlüssel runter, erweitert die apt sources, macht ein update und installiert das Paket:

1. wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
2. sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
3. sudo apt-get update
4. sudo apt-get install atom

Und tatsächlich erhält man ein in den Ubuntu GNOME 3 Desktop integrierten Editor.

… bedarf aber noch zusätzlicher Pakete …

Offiziell lässt sich Atom über ein integriertes Interface erweitern, das frau per Edit/Preferences/Install (Linux) bzw. File/Settings/Install (Windows) erreicht: Über das obere Textfeld lässt man das gewünschte Package suchen, über die dann erscheinende ‚Karteikarte‘ installieren.

Gelegentlich funktioniert die integrierte Suche nicht. Jeder Aufruf endet im Fehler i.filter is not a function [object Object], was nicht Ubuntu geschuldet ist, sondern dem Atom Server. In solchen Fällen kommt frau auf Umwegen zum Ziel: Sie sucht per Google nach dem Paket und wird (meist) auf einen Treffer unter https://atom.io/packages/ geleitet. Dort findet sich jeweils auch eine Hinweis zur manuellen Installation. In der Regel braucht man auf der Konsole nur apm install $packagename einzugeben. Das Paket wird dann unter .atom/packages installiert und bei jedem Neustart geladen.

Damit können wir uns die zusätzlichen Pakete holen, die wir brauchen:

  • Zum ersten wollen wir ‚Atom‘ als LaTeX-Editor verwenden. Dafür müssen wir ihm die LaTeX-Syntax beibringen: apm install language-latex
  • Dann wollen wir ‚Atom‘ u.U. auch als LaTeX-IDE verwenden, also müssen wir ihm die LaTeX-Build-Kommandos zugänglich machen: apm install latex
  • Außerdem soll ‚Atom‘ unsere Rechtschreibung überprüfen, und zwar in deutschen und englischen Texten. Die Mehrsprachigkeit werden wir später konfigurativ aktivieren. ‚Atom‘ darf uns aber nicht jeden LaTeX-Befehl als Fehler ankreiden. Und es soll unseren Code überprüfen. Das müssen wir ihm per Linter und Submodule beibringen apm install linter linter-spell linter-ui-default linter-spell-latex. Für die anderen Sprachen gibt es entsprechendes, z.B. apt install linter-php
  • Schließlich wollen wir ‚Atom‘ auch nutzen, wenn wir mit dem Laptop auf der sonnigen Terrasse sitzen. Dabei hindert der Dark-Mode sehr. Glücklicherweise gibt es ein Package, mit dem man schnell mal zwischen Hell-und-Dunkel-Ansicht wechseln kann: apm install dark-mode. Den Toggle-Befehl findet man – wie üblich – unter Packages/dark mode.
  • Für unsere Markdown-Aktivitäten brauchen wir fast nichts zu tun: Das Syntax-Highlighting läuft out-of-the-box. Und über Packages/Markdown Preview können wir uns das nach html konvertierte Dokument direkt ansehen. Um es in eine PDF-Datei umzuwandeln, ohne in die Shell zu pandoc zu wechseln, brauchen wir ein Package: apm install markdown-pdf. Nach dem Neustart können wir das Package unter File/Settings/Packages#markdown-pdf konfigurieren und finden unter Packages/Markdown To PDF das Umwandlungskommando.

… und Anpassungen der Konfiguration:

Konfigurieren lässt sich ‚Atom‘ über zwei Wege: Unter Edit/Preferences (Linux) bzw. File/Settings/ (Windows) können unter Core und Editor allgemeine Eigenschaften eingestellt werden. Unter Edit/Preferences/Packages (Linux) bzw. File/Settings/Packages (Windows) erreicht man die installierten Pakete und deren spezifische Konfigurationsmöglichkeiten.

Wir benötigen beide Methoden:

  • Zum ersten soll unser ‚Atom‘ ein Softwrap verwenden, also eine lange Textteile automatisch umbrechen, ohne die Zeile wirklich mit einen LF (Linux) bzw. CR LF (Windows) umzubrechen. Dazu aktivieren wir unter Edit/Preferences#Editor das Soft Wrap mittels eines Hakens. Dazu legen wir dann auch noch fest, dass der virtuelle Umbruch nicht am Fensterrand erfolgt, sondern an der maximalen Zeilenbreite Soft Wrap At Preferred Line Length
  • Dann soll unser ‚Atom‘ die Rechtschreibung in gemischtsprachigen Texten überprüfen können. Dazu konfigurieren wir das Package Edit/Preferences/Packages/spell-check entsprechend:
    • Wir aktivieren Use Locales per Häkchen.
    • Und wir tragen in das Feld Locales en-US, de_DE ein.

Und damit haben wir, was wir wollten:

‚Atom‘ tritt als hackable text editor an. Das Netz weiß um seine besten Erweiterung. Man braucht sich nur inspirieren zu lassen. Die Methoden bleiben die, die wir hier angewendet und mit denen wir unsere Ziele erreicht haben:

FeatureStatus
1.)Rechtschreibprüfung für gemischtsprachige Texte
2.)Kontextsensitive Rechtschreibprüfung in Programmiersprachen
3.)Syntax-Highlighting für Latex, HTML PHP, C/C++, Java, bash
4.)Code-Completion für Latex, HTML PHP, C/C++, Java, bash
5.)Integration in ein Laptop auch für sonnige Arbeitsplätze
6.)Markdown-Unterstützung

Ein letztes Geständnis

Ganz weglegen werde ich Eclipse nicht. Denn kein Tool bietet mit den Modulen XText und XTend einen besseren Support für die Entwicklung domänenspezifischer Sprachen.

2 Anmerkungen zu “Atom unter Ubuntu 20.04”

  1. Peter Mueller sagt:

    Any idea of how to get babel-commands-dependent spellchecking? That is, the German document

    Das ist ein langer Satz (engl. \foreignlanguage{USenglish}{sentence}).

    should invoke no spellchecker warnings, whereas

    Das ist ein langer sentence (engl. \foreignlanguage{USenglish}{Satz}).

    should invoke two spellchecker warnings.

  2. Karsten Reincke sagt:

    Ok. I see, what you want to get: a context sensitive fault message in between a sentence. Does ‚Babel‘ offer such a feature in general? I have not used ‚Babel‘ actively. So, unfortunately, I can’t help you.

    And my solution is indeed much weaker than that you want to get:

    A) ‚Das ist ein langer Satz (engl. sentence)‘ only marks the abbreviation ‚engl.‘

    B) And in ‚Das ist ein langer sentence …‘ my solution does not see that
    a)’sentence‘ normally is not a word in a German sentence as well as
    b) it does not see that ‚Satz‘ isn’t an English word.

    So, if you find a way, to get what your need, please let us know your solution.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

4 + 1 =