<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tools Archives - Freigiebigkeit</title>
	<atom:link href="https://karsten-reincke.de/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>(Fach-) Informatik vom Dorf</description>
	<lastBuildDate>Sun, 15 Mar 2026 21:27:44 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Über tote Pferde: Atom vs. VSCod[e&#124;ium]</title>
		<link>https://karsten-reincke.de/vscodium/</link>
					<comments>https://karsten-reincke.de/vscodium/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Wed, 16 Nov 2022 19:53:39 +0000</pubDate>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Editor]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=4289</guid>

					<description><![CDATA[<p>Es heißt, “Atom and all repositories under Atom will be archived on December 15, 2022”. Denn der von GitHub entwickelte, editierbare Editor für das 21st Jahrhundert sei über die letzten Jahre nicht signifikant weiterentwickelt worden. Darum werde dieser Editor in den Ruhestand geschickt — zugunsten von “Microsoft Visual Studio Code. Und das, wo ich Atom [&#8230;]</p>
<p>The post <a href="https://karsten-reincke.de/vscodium/">Über tote Pferde: Atom vs. VSCod[e|ium]</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image"><figure class="alignleft size-medium is-resized is-style-default "><a href="https://karsten-reincke.de/wp-content/uploads/2023/05/dead-horse-pxh-1142556-600x900-1.png" data-fancybox><img decoding="async" src="https://karsten-reincke.de/wp-content/uploads/2023/05/dead-horse-pxh-1142556-600x900-1-200x300.png" alt="Riding a dead horse" width="60"></a></figure></div>



<p><a href="https://atom.io/">Es heißt</a>, “<em>Atom and all repositories under Atom will be archived on December 15, 2022”</em>. Denn <a href="https://en.wikipedia.org/wiki/Atom_(text_editor)">der von GitHub entwickelte</a>, <a href="https://atom.io/">editierbare Editor für das 21st Jahrhundert</a> sei <a href="https://github.blog/2022-06-08-sunsetting-atom/">über die letzten Jahre nicht signifikant weiterentwickelt worden</a>. Darum werde dieser Editor in den Ruhestand geschickt — <a href="https://github.blog/2022-06-08-sunsetting-atom/">zugunsten von “Microsoft Visual Studio Code</a>. Und das, wo ich <a href="https://karsten-reincke.de/atom-ubuntu/">Atom so geliebt</a> habe. Besonders <a href="https://karsten-reincke.de/atom-and-vim/">mit VI-Mode</a>! Was also tun?<span id="more-4289"></span></p>



<p class="has-text-align-right"></p><div class="container"><div class="d-flex justify-content-end sample-row"><div class="col-xs"><div class="text-right">[ de | <a href="https://fodina.de/vscodium">en</a> ]</div></div></div></div>



<div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Dass <a href="https://www.heise.de/newsticker/meldung/Uebernahme-von-GitHub-durch-Microsoft-abgeschlossen-4205119.html">Microsoft <em>GitHub</em> im Jahr 2018 gekauft hat</a>, dürfte diese vernünftige Entscheidung erleichtert haben: Denn ein Sponsor sollte seine Kräfte nicht auf zwei identische Produkte aufteilen — auch wenn ich mich dadurch wieder einmal auf einem toten Pferd wiederfinde. Also muss ich ein lebendiges umsteigen. <em>Visual Studio Code</em> ist mir ja schon oft genug von meinen Kollegen empfohlen worden. Aber es sollte mir dann auch all das ermöglichen, was ich in den letzten Jahren mit Atom machen konnte.</p>



<h2 class="wp-block-heading">2. Was stimmt nicht mit <em>Visual Studio Code</em>?</h2>



<p>“Microsoft Visual Studio Code” sei Open-Source-Software, heißt es. Doch die Situation ist kompliziert:</p>



<ul class="wp-block-list">
<li>Ja, <a href="https://github.com/microsoft/vscode">der Kern von “Visual Studio Code” — genannt <em>Code-OSS</em></a> — wird als Freie Software unter der <a href="https://github.com/microsoft/vscode/blob/main/LICENSE.txt">MIT-Lizenz</a> angeboten.</li>



<li>Aber zuletzt macht MS damit mehr: Es nimmt den Kern, reichert ihn an und bettet ihn in sein eigenes Produktbiotop ein: <a href="https://analyticsindiamag.com">*VS Code sei eine von Microsoft lizenzierte Distribution von *Code-OSS*</a>, die Microsoft-eigene Elemente wie die Integration des Visual Studio Marketplace und das Telemetriesystem enthalte, die in <em>Code-OSS</em> nicht verfügbar seien. <a href="https://code.visualstudio.com/License/">Dem entsprechend wird “VS Code” unter den Bedingungen einer spezifischen Microsoft-Lizenz vertrieben</a>.</li>



<li>Auch wenn man <a href="https://code.visualstudio.com/docs/getstarted/telemetry">das Senden der Telemetriedaten unterbinden</a> kann, bleibt der eigentliche Stein des Anstoßes bestehen: Die Funktionalität von <em>VSCode</em> kann durch <em>Extensionen</em> aus dem <a href="https://marketplace.visualstudio.com/VSCode"><em>Visual Studio Marketplace</em></a> erweitert werden. Allerdings seien diese Erweiterungen — wie es in den <a href="https://cdn.vsassets.io/v/M190_20210811.1/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf">Nutzungsbedingungen des Microsoft Visual Studio Marketplace}</a> heißt — <em>nur für die Verwendung mit “In-Scope” Produkten und Diensten bestimmt</em> (<a href="https://cdn.vsassets.io/v/M190_20210811.1/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf">§1.b</a>), wobei der Begriff <em>In-Scope Produkte</em> definiert ist als <em>Produkte und Dienste […], die von uns [Microsoft] und GitHub […] angeboten würden</em> (<a href="https://cdn.vsassets.io/v/M190_20210811.1/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf">§0/Opening</a>).</li>
</ul>



<p>Selbst wenn also “VSCode” an sich Open Source ist und MS mit der Basis <em>Code-OSS</em> macht, was erlaubt ist, dürfen die von MS bereitgestellten Erweiterungen dennoch nicht in <em>Code-OSS</em>-Varianten anderer Anbieter verwendet werden, auch wenn diese Erweiterungen ihrerseits freie Software sind.</p>



<p>Rechtlich mag das in Ordnung sein, aber es müffelt. Also habe ich nach einer Alternative gesucht. Hier das Ergebnis meiner Bemühungen:</p>



<h2 class="wp-block-heading">3. Was stimmt nicht mir <em>VSCcodium</em>?</h2>



<p><em>VSCodium</em> will die Lizenzprobleme von VSCode lösen und liefert <a href="https://vscodium.com/"><em>Binaries […] lizenziert unter der MIT-Lizenz (mit deaktivierter) Telemetrie […]</em></a>. Folglich gehört <em>VSCodium</em> zu den Varianten, die Extensionen aus dem <em>Visual Studio Marketplace</em> gerade nicht installieren dürfen, <a href="https://github.com/VSCodium/vscodium/">selbst wenn das technisch möglich ist</a>.</p>



<p>Um das Problem zu entschärfen, wurde ein <a href="https://open-vsx.org/">anderer Marktplatz mit Extensionen <em>für VS Code kompatible Editoren</em></a> eingerichtet: OPEN VSX. Damit ist allerdings eine andere Herausforderung verbunden: <em>Da (Open VSX) ein recht neues Projekt ist, werden wahrscheinlich einige Erweiterungen fehlen, die man aus dem ‘VS Code Marketplace’ kennt</em>.</p>



<p>Es braucht also ein wenig Gehirnschmalz, Freude am Ausprobieren und Offenheit für Alternativen, um seine VSCodium-Instanz genauso zum Laufen zu bringen wie zuvor die Instanz von Atom.</p>



<h2 class="wp-block-heading">4. Was konnte mein Atom-Editor?</h2>



<p>Meine Atom-Instanz bot mir</p>



<ul class="wp-block-list">
<li>[x] die Textbearbeitung mit Vim-Befehlen</li>



<li>[x] Syntax-Hervorhebung für</li>



<li>[x] Markdown-Dateien (mit GitHub-Flavor)</li>



<li>[x] LaTeX-Dateien</li>



<li>[x] LilyPond-Dateien</li>



<li>[x] Javascript, CSS, HTML</li>



<li>[x] eine Markdown-Vorschau</li>



<li>[x] die Konvertierung von Markdown-Dateien ins PDF-Format</li>



<li>[x] eine Rechtschreibungprüfung, sogar in mehrsprachigen Dokumenten</li>



<li>[x] eine Einrückung mit Blanks statt Tabs</li>
</ul>



<p>Außerdem gab es viele weitere Optionen. Aber dies waren die, die ich regelmäßig benutzte.</p>



<h2 class="wp-block-heading">5. <em>VSCodium</em> als Ersatz für <em>Atom</em></h2>



<h3 class="wp-block-heading">5.1 <em>VSCodium</em> unter Ubuntu 22.04 installieren</h3>



<p>Der folgende Abschnitt folgt einem Artikel von linuxcapable.com((Stand 2023-07-21 leider nicht mehr engboten)):</p>



<ol class="wp-block-list">
<li>Aktualisiere Deine Installation mit <code>sudo apt update &amp;&amp; sudo apt upgrade</code></li>



<li>Installiere einen speziellen Layer per <code>sudo apt install apt-transport-https gnupg2 -y</code></li>



<li>Integriere den <em>VSCodium</em>-Schlüssel in Dein Schlüsselbund mit <code>wget -O- https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | sudo gpg --dearmor | sudo tee /usr/share/keyrings/vscodium.gpg</code></li>



<li>Integriere das <em>VSCodium</em>-Repository in Deine Quellenliste per <code>echo deb [signed-by=/usr/share/keyrings/vscodium.gpg] https://download.vscodium.com/debs vscodium main | sudo tee /etc/apt/sources.list.d/vscodium.list</code></li>



<li>Aktualisiere den jetzt zugänglichen Paketbestand per <code>sudo apt update</code></li>



<li>Installiere <em>VSCodium</em> mit <code>sudo apt install codium -y</code></li>
</ol>



<h3 class="wp-block-heading">5.2 VSCodium anpassen</h3>



<p>Eins vorab: <em>VSCodium</em> ist von sich aus mit dem <em>OPEN VSX Marketplace</em> verknüpft. So kann frau installieren, was sie will, ohne die Microsoft-Regeln zu verletzen</p>



<h4 class="wp-block-heading">5.2.1 VSCodium konfigurieren</h4>



<p>Als Erstes sollte frau <em>VSCodium</em> mit den vorhandenen Mitteln konfigurieren, indem sie <code>File/Preferences/Settings</code> aufruft und die folgenden Werte einträgt</p>



<ol class="wp-block-list">
<li><code>Text-Editor: Tab Size =&gt; 2</code> <em>(keine Platzverschwendung)</em></li>



<li><code>Text-Editor: Insert Spaces =&gt; true</code> <em>(Gleiches Erscheinungsbild in verschiedenen Editoren)</em></li>



<li><code>Text-Editor: Word Wrap =&gt; on</code> <em>(keine manuell eingefügten Zeilenumbrüche in Absätzen)</em></li>



<li><code>Text-Editor: Bracket Pair Colorization =&gt; true</code> <em>(verirre Dich nicht in Deinem Code)</em></li>



<li><code>Text-Editor: Code Lense =&gt; true</code> <em>(erlaube Kontextinformationen)</em></li>
</ol>



<p>Für die folgende Schritte rufe dann <code>File/Preferences/Extensions</code> auf, suche im Marketplace nach den folgenden Erweiterungen und drücke dort <code>install</code>:</p>



<h4 class="wp-block-heading">5.2.2 Ein guter VIM-Modus</h4>



<p>Der <em>Open VSX Marketplace</em> bietet einige VIM-Erweiterungen an. Ich persönlich empfand einen großen Unterschied zwischen dem ursprünglichen Verhalten von <code>vim</code> und dem von denjenigen, die behaupten, <code>vim</code> zu emulieren: einige davon beschränken sich auf Syntax-Highlighting, andere implementieren die <code>:</code>-Befehle nicht (angemessen). Letztendlich landete ich bei <em>VSode Neovim</em>. Diese Erweiterung erfordert jedoch eine Vorbereitung auf Ubuntu-Ebene:</p>



<ul class="wp-block-list">
<li>Öffne eine Linux-Shell und gib <code>sudo apt-get remove vim</code> und <code>sudo apt-get install neovim</code> ein.</li>



<li>Öffne in <em>VSCodium</em> <code>File/Preferences/Extensions</code>, gib <em>vim</em> in das Suchfeld ein und installiere <em>VSCode Neovim</em></li>
</ul>



<h4 class="wp-block-heading">5.2.3 Eine gute Markdown-Umgebung</h4>



<ul class="wp-block-list">
<li>Öffne in VSCodium <code>File/Preferences/Extensions</code>, gib Markdown ins Suchfeld ein und installiere</li>



<li><em>Markdown All in One</em> (yzhang)</li>



<li><em>Markdown Checkbox</em> (PKief)</li>



<li><em>Markdown Converter</em> (manuth)</li>
</ul>



<p>Die Vorschaufunktionalität erreichst Du über</p>



<ul class="wp-block-list">
<li>über das Fenstersymbol in der oberen rechten Ecke oder</li>



<li>über <code>View/Command Palette</code> und den Suchtext <code>&gt;Markdown preview</code></li>
</ul>



<p>Um das md-Dokument nach PDF zu konvertieren, nutze <code>View/Command Palette</code> und den Suchtext <code>&gt;Markdown convert</code></p>



<p>Beim ersten Mal wirst Du aufgefordert, eine ‘chromium Instanz’ in den Extensionordner laden zu lassen. Wenn das bei Dir nicht geht, kannst Du ersatzweise in den <code>Settings/Extensions/MarkdownConverter-Options</code> die Variable <em>Chromium Executable Path</em> mit dem Pfad zum Deinem Chromium belegen</p>



<h4 class="wp-block-heading">5.2.4 Eine gute LaTeX-Umgebung</h4>



<p><em>VSCodium</em> hat ein eingebautes Syntaxhighlighting für LaTeX. (Es gibt zwar noch eine explizite Erweiterung für die LaTeX-Sprachunterstützung, aber die ist nur für ältere VSCodium-Versionen relevant)</p>



<p>Für die Konvertierung von LaTeX-Dateien nach PDF (usw.) verwende ich die Mittel und Werkzeuge auf Ubuntu-Ebene.</p>



<h4 class="wp-block-heading">5.2.5 Eine gute Lilypond-Umgebung</h4>



<ul class="wp-block-list">
<li>Öffne in VSCodium <code>File/Preferences/Extensions</code>, gib <em>LilyPond</em> ins Suchfeld ein und installiere <em>LilyPond Syntax (jeandeaual)</em></li>
</ul>



<h4 class="wp-block-heading">5.2.6 Eine gute Web-Entwickler-Umgebung</h4>



<p><em>VSCodium</em> bringt ein eingebautes Syntaxhighlighting für <em>HTML</em>, <em>Javascript</em> und <em>CSS</em> mit</p>



<h4 class="wp-block-heading">5.2.7 Eine gute Rechtschreibprüfung für LaTex, Markdown usw.</h4>



<ul class="wp-block-list">
<li>Öffne <code>File/Preferences/Extensions</code> in VSCodium, gib <em>LTeX</em> ein und installiere <em>LTeX LanguageTool …</em> (valentjn) [Hinweis: LTeX ist kein Tippfehler!]</li>



<li>Öffnen <code>File/Preferences/Settings/Extensions/LTeX</code> und trage <code>LTeX:Language =&gt; de-DE</code> ein oder welche Sprache Du auch immer bevorzugst.</li>



<li>Wenn Du ein Dokument in einer anderen Sprache schreiben willst, lasse es mit einem entsprechenden magischen Kommentar beginnen:</li>



<li>in LaTeX: <code>% LTeX:Sprache=en-US</code></li>



<li>in Markdown: <code>&lt;!-- LTeX:Language=en-US --&gt;</code></li>



<li>Wenn Du dann einen fremdsprachigen Abschnitt in Dein Dokument einbinden willst, füge den entsprechenden magischen Kommentar oberhalb dieses Textes eine Zeile danach den entsprechenden ‘Reset-Kommentar’ ein.</li>
</ul>



<h4 class="wp-block-heading">5.2.8 Einige andere hilfreiche Erweiterungen</h4>



<ul class="wp-block-list">
<li><em>Auto Close Tag</em> (formulahendry) (Automatisches Hinzufügen eines HTML/XML-Close-Tags,)</li>



<li><em>Auto Rename Tag</em> (formulahendry) (Automatisches Umbenennen gepaarter HTML/XML-Tags)</li>



<li><em>Better Comments</em> (aaron-bond) (Einfärben und Klassifizieren Ihrer Kommentare: Wichtig, TODO, …)</li>



<li><em>CodeSnap</em> (adpyke) (Schöne Screenshots vom Code über das erweiterte Kontextmenü)</li>



<li>File Utils (sleistner) (Umbenennen, Verschieben, … von Dateien über das erweiterte Kontextmenü)</li>



<li><em>Prettier</em> (esbenp) (Lasse Deine Dokumente einheitlich formatieren)</li>



<li><em>Scheme</em> (jeandeaual) ) (Umgang mit den in Lilypond verwendeten ‘Scheme’-Dokumenten)</li>



<li><em>TODO Highlight</em> (wayou) (Hervorhebung der TODOs in einem Dokument)<br>vscode-pdf (tomoki1207) (Anzeige von PDFs innerhalb von VSCodium)</li>



<li><em>YAML</em> (redhat) (Umgang mit YAML-Dateien)</li>



<li><em>YAML &amp; JSON</em> (hilleer) (Konvertiere YAML nach JSON und umgekehrt)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity">



<p class="has-text-align-right">Im Übrigen: <i class=" fa-solid fa-venus-mars"></i> <a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Männer</a> sind <a href="https://karsten-reincke.de/genderismus/">mitgemeint</a>.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-heart-pulse"></i> Und in welchem größere Zusammenhang …</h5> 
  <p class="myPageContext">… steht dieser Text? Nun, <a href="https://karsten-reincke.de/kreincke/">mein Leben</a> 
  ist eingebettet in <a href="https://karsten-reincke.de/skills/">freie Software</a>, 
  <a href="https://karsten-reincke.de/category/lovlyak/">Natur</a> und <a href="https://karsten-reincke.de/workshops/">Musik</a>. 
  Manchmal finde ich da abseitigere Wege und <a href="https://karsten-reincke.de/cwa/">Tools</a>, die es trotzdem wert 
  sind, geteilt zu werden. Und sei es nur mit meinem vergesslichen zukünftigen ‘ich’. Dem ich gerne immer 
  wieder einmal <a href="https://karsten-reincke.de/strato-wordpress-per-ssh/">ein Strato über die Shell</a> ans Herz lege. 
  Oder <a href="https://karsten-reincke.de/atom-ubuntu/">passend</a> 
  <a href="https://karsten-reincke.de/atom-and-vim/">erweiterte</a> <a href="https://karsten-reincke.de/vscodium/">Editoren</a>. 
  Oder uralte <a href="https://karsten-reincke.de/gtgt/">Vorarbeiten</a>.
  Manchmal möchte ich dieses ‘ich’ aber auch nur an <a href="https://karsten-reincke.de/kippasolidaritaet/">Haltungen</a>, 
  <a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Standpunkte</a> und 
  <a href="https://karsten-reincke.de/genderismus/">Einstellungen</a> erinnern. 
  Damit ich nicht hinter mich zurückfalle. Denn gesagt ist gesagt. 
  Darum geht es auch in hier.</p>
<hr class="wp-block-separator has-alpha-channel-opacity">
<p class="has-text-align-right">Im Übrigen: <i class="fa-solid fa-venus-mars"></i> 
<a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Männer</a> 
sind <a href="https://karsten-reincke.de/genderismus/">mitgemeint</a>.</p>
<p>The post <a href="https://karsten-reincke.de/vscodium/">Über tote Pferde: Atom vs. VSCod[e|ium]</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://karsten-reincke.de/vscodium/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Atom und Vi(m)-Plugin: ein Traum wird wahr</title>
		<link>https://karsten-reincke.de/atom-and-vim/</link>
					<comments>https://karsten-reincke.de/atom-and-vim/#comments</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Mon, 31 Aug 2020 08:35:26 +0000</pubDate>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Editor]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=2968</guid>

					<description><![CDATA[<p>Ich liebe den vi(m), insbesondere wenn ich in einem Repository arbeite. Es ist so leicht, schnell mal eben eine Datei per Konsole zu ändern, so einfach alle Trumps durch Biden zu ersetzen: :1,$ s/[Tt]rump/Biden/g. Das hilft sogar bei Strato per ssh. Aber am Desktop habe auch ich bisher natürlich GUI basierte Editoren genutzt, Gedit z.B. [&#8230;]</p>
<p>The post <a href="https://karsten-reincke.de/atom-and-vim/">Atom und Vi(m)-Plugin: ein Traum wird wahr</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ich liebe den <strong>vi</strong>(<strong><em>m</em></strong>), insbesondere wenn ich in einem Repository arbeite. Es ist so leicht, schnell mal eben eine Datei per Konsole zu ändern, so einfach alle <em>Trumps</em> durch <em>Biden</em> zu ersetzen: <code>:1,$ s/[Tt]rump/Biden/g</code>. Das hilft <a href="https://karsten-reincke.de/strato-wordpress-per-ssh/">sogar bei Strato per ssh</a>. Aber am Desktop habe auch ich bisher natürlich GUI basierte Editoren genutzt, <em>Gedit</em> z.B. Oder — seit einigen Monaten — <em>Atom</em>. Daher rutschten mir manchmal <em>vi-Befehle</em> wie <code>xi</code> in meine Texte — weil ich vergessen hatte, dass ich einen Desktop-Editor benutzte. Das wird jetzt anders, Atom mit Vi(m)-Plugin sei Dank:<span id="more-2968"></span></p>



<p>Das Plugin <a href="https://github.com/t9md/atom-vim-mode-plus">atom-vim-mode-plus</a> — zu installieren mit dem Shell-Kommando <code>apm install vim-mode-plus</code> — erlaubt uns, die <em>vi(m)</em>-Befehle im <em>Atom</em> zu nutzen!</p>



<h2 class="wp-block-heading">Zu erst ein kleiner Vorbehalt …</h2>



<p>Hat man das Package <em>vim-mode-plus</em> in <em>Atom</em> installiert, kann man nicht mehr direkt mit dem Tippen loslegen. Man muss vorher ein wenig mit den <em>vi-modes</em> vertraut werden: Lädt man eine Datei oder legt, eine neu an startet <em>Atom</em> im <em>visual-mode</em>. Das ist ein <em>vi(m)-</em>Modus, der Kommandos akzeptiert und auf den angezeigten Text anwendet. <code>i</code> ist einer dieser Befehle. Er stößt den Wechsel in den <em>insert-mode</em> an und erlaubt uns, Text einzugeben. Um dann Befehle auf den gerade eingegebenen Text anzuwenden, müssen wir allerdings per <code>esc</code> in den <em>visual mode</em> zurückkehren.</p>



<h2 class="wp-block-heading">… dann einige beruhigende Worte …</h2>



<p><em>Atom</em> bietet von sich aus schon Optionen, seinen Text zu bearbeiten: Man kann Passagen selektieren, ausschneiden, kopieren und wieder einfügen, ganze Zeilen verschieben, Wörter in Großbuchstaben verwandeln u.Ä.m. All diese Möglichkeiten können auch mit installiertem <em>vim-mode-plus</em> genutzt werden, und zwar unabhängig davon, ob man im <em>visual mode</em> or in the <em>insert mode</em> arbeitet. Selbst das <em>Atom</em> eigene ‘Suchen-und-Ersetzen’ funktioniert wie erwartet. Das <em>vim-mode-plus</em>-Plugin erweitert also die Möglichkeiten unseres Editors ’nur’, es verändert sie nicht — außer dass man eben bei der Eingabe von Text den aktuellen Arbeitsmodus im Hinterkopf haben muss.</p>



<h2 class="wp-block-heading">… und schließlich eine Liste neuer Möglichkeiten:</h2>



<p>Der Nachteil der reinen <em>Atom</em>-Fähigkeiten ist, dass man die Maus benutzen muss. Das bremst. <em>vi(m)</em> bietet dagegen den Vorteil, alles über die Tastatur machen zu können. Das erhöht die Arbeitsgeschwindigkeit — selbst wenn man nur mit einem 3‑Fingersystem tippt. Hier ein paar zentrale Eigenschaften vom <em>vi(m)</em>, die jetzt auch im <em>Atom</em> nutzbar sind:</p>



<h3 class="wp-block-heading">Den Cursor platzieren:</h3>



<p>Die vertrauten Pfeiltasten funktionieren wie erwartet, im <em>visual-mode</em> und im <em>insert-mode</em>). Die anderen Kommandos wirken dagegen nur im <em>visual-mode</em>:</p>



<ul class="wp-block-list">
<li>Mit den <em>vim</em>-‘Pfeilersatztasten’ <code>h</code>, <code>j</code> , <code>k</code>, <code>l</code> kann man den Cursor ebenso <strong>nach links</strong>, <strong>nach unten</strong>, <strong>nach oben</strong> und <strong>nach rechts</strong> bewegen. Legt man den Zeigefinger auf einer QWERTZ-Tastatur aufs <em>h</em> und die restlichen drei daneben, merkt man, wie organisch das funktioniert. Wenn man allerdings mit den Pfeiltasten so vertraut ist wie ich, wird man diese Option trotzdem eher selten benutzen.</li>
</ul>



<p>Nützlicher sind da schon die Tasten</p>



<ul class="wp-block-list">
<li><code>w</code> := ein Wort vorwärts</li>



<li><code>b</code> := ein Wort zurück</li>



<li><code>e</code> := zum Ende des Wortes, auf dem der Cursor steht</li>



<li><code>(</code> := zum Anfang des nächsten Satzes</li>



<li><code>)</code> := zum Anfang des aktuellen Satzes</li>
</ul>



<p>Je größer die Distanz ist, die so ein Sprungbefehl zurücklegt, um so stärker die Arbeitsersparnis: Wenn man lange Zeilen mit weichem ‘Word-Wrapping’ als Quasi-Paragraphen verwendet, um dem Nutzer die Zeilen in einer zur gewählten Fensterbreite passenden Länge anzeigen zu lassen — wie es heutzutage oft bei <em>md</em>-Dateien oder in Mails geschieht — dann wird man es begrüßen, nicht mittels der Pfeiltasten Buchstabe für Buchstabe in einer Zeile vor oder zurück navigieren zu müssen. Die folgenden Tasten biete andere große Sprünge:</p>



<ul class="wp-block-list">
<li><code>0</code> := zurück zum Zeilenanfang</li>



<li><code>$</code> := vorwärts zum Zeilenende</li>



<li><code>H</code> := zurück zur ersten im Fenster sichtbaren Zeile</li>



<li><code>M</code> := in die Zeile in der Mitte des Fenster</li>



<li><code>L</code> := vorwärts in die letzte sichtbare Zeile</li>
</ul>



<h3 class="wp-block-heading">Text einfügen und ändern</h3>



<ul class="wp-block-list">
<li><code>i</code> := <strong>unter dem Cursor</strong> Text <em>einfügen</em></li>



<li><code>a</code> := <strong>nach dem Cursor</strong> Text <em>einfügen</em></li>



<li><code>r</code> := das Zeichen <strong>unter dem Cursor</strong> <em>ersetzen</em></li>



<li><code>cw</code> := das Wort <strong>unter dem Cursor</strong> <em>ersetzen</em></li>



<li><code>cc</code> := die Zeile <strong>unter dem Cursor</strong> <em>ersetzen</em></li>



<li><code>R</code> := der Reihe nach alle Zeichen <strong>unter dem Cursor</strong> <em>ersetzen</em> bis man mit <code>esc</code> wieder in den <em>visual-mode</em> wechselt</li>
</ul>



<p>Mit den Kommandos <em>i</em>, <em>a</em>, <em>cw</em>, and <em>cc</em> geht ein Wechsel in den <em>insert-mode</em> einher.</p>



<h3 class="wp-block-heading">Text löschen</h3>



<ul class="wp-block-list">
<li><code>x</code> := <em>löscht</em> das Zeichen <strong>unter dem Cursor</strong></li>



<li><code>dw</code> := <em>löscht</em> das Wort <strong>unter dem Cursor</strong></li>



<li><code>dd</code> := <em>löscht</em> die Zeile <strong>unter dem Cursor</strong></li>



<li><code>D</code> := <em>löscht</em> den Rest der Zeile <strong>vom Cursor bis zu ihrem Ende</strong></li>
</ul>



<p>Der Vorteile der Befehle <em>dw</em> und <em>dd</em> ist, dass sie die gelöschten Teile in einen Puffer kopieren, von wo aus sie mittels <em>p</em> oder <em>P</em> auch an anderer Stelle wieder eingefügt werden können.</p>



<h3 class="wp-block-heading">Kopieren und Einfügen</h3>



<ul class="wp-block-list">
<li><code>yw</code> := <em>kopiert</em> das Wort <strong>unter dem Cursor</strong> in den Puffer</li>



<li><code>yy</code> := <em>kopiert</em> die Zeile <strong>unter dem Cursor</strong> in den Puffer</li>



<li><code>p</code> := <em>fügt</em> den Puffer <strong>nach dem Cursor</strong> ein</li>



<li><code>P</code> := <em>fügt</em> den Puffer <strong>vor dem Cursor</strong> ein</li>
</ul>



<h3 class="wp-block-heading">Rückgängig machen</h3>



<ul class="wp-block-list">
<li><code>u</code> := <strong>die letzte(n) Veränderung(en)</strong> <em>rückgängig machen</em></li>



<li><code>U</code> := <strong>die Zeile unter dem Cursor</strong> <em>wieder herstellen</em></li>
</ul>



<h3 class="wp-block-heading">Suchen</h3>



<ul class="wp-block-list">
<li><code>/ XYZ</code> := nach dem String <em>XYZ</em> <em>suchen</em></li>
</ul>



<h3 class="wp-block-heading">Regex basierte Ersetzungen</h3>



<p>Der <em>vi(m)</em> bietet zusätzlichen einen <em>executing-mode</em>. Drückt man die Taste <code>:</code> und gibt eine Zeilennummer samt Befehl ein, dann wird dieser Befehl auf den Text an der angegebenen Stelle angewendet. So würde z.B. der Befehl <code>: 1,$ s/[Tt]rump/Biden/g</code> alle Vorkommen von <em>Trump</em> oder <em>trump</em> durch <em>Biden</em> ersetzen (<em>s</em>), und zwar von der ersten (<em>1</em>) bis zur letzten Zeile (<em>$</em>).</p>



<p>Solche Ersetzungen ausführen zu können, ist oft hilfreich. Unglücklicherweise kann <em>vim-mode-plus</em> selbst mit dieser Art von Kommandos nichts anfangen. Und sein Autor <a href="https://github.com/t9md/atom-vim-mode-plus/issues/52">hat Vorbehalte, den <em>ex-mode</em> zu implementieren</a>. Stattdessen empfiehlt er, zusätzlich das <a href="https://atom.io/packages/ex-mode">Plugin / Package <em>ex-mode</em> </a>per <code>apm install ex-mode</code> zu installieren.</p>



<p>Und tatsächlich funktioniert das bestens.</p>



<h2 class="wp-block-heading">Fazit:</h2>



<p>Die Plugins <em>vim-mode-plus</em> und <em>ex-mode</em> in <em>Atom</em> zu installieren, bietet uns wirklich die Möglichkeit, die Fähigkeiten eines graphischen Editors wie <em>Atom</em> und die <em>vi(m)</em>-Eigenschaften kombiniert zu nutzen. Mit anderen Worten: ein Traum ist wahr geworden.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-heart-pulse"></i> Und in welchem größere Zusammenhang …</h5> 
  <p class="myPageContext">… steht dieser Text? Nun, <a href="https://karsten-reincke.de/kreincke/">mein Leben</a> 
  ist eingebettet in <a href="https://karsten-reincke.de/skills/">freie Software</a>, 
  <a href="https://karsten-reincke.de/category/lovlyak/">Natur</a> und <a href="https://karsten-reincke.de/workshops/">Musik</a>. 
  Manchmal finde ich da abseitigere Wege und <a href="https://karsten-reincke.de/cwa/">Tools</a>, die es trotzdem wert 
  sind, geteilt zu werden. Und sei es nur mit meinem vergesslichen zukünftigen ‘ich’. Dem ich gerne immer 
  wieder einmal <a href="https://karsten-reincke.de/strato-wordpress-per-ssh/">ein Strato über die Shell</a> ans Herz lege. 
  Oder <a href="https://karsten-reincke.de/atom-ubuntu/">passend</a> 
  <a href="https://karsten-reincke.de/atom-and-vim/">erweiterte</a> <a href="https://karsten-reincke.de/vscodium/">Editoren</a>. 
  Oder uralte <a href="https://karsten-reincke.de/gtgt/">Vorarbeiten</a>.
  Manchmal möchte ich dieses ‘ich’ aber auch nur an <a href="https://karsten-reincke.de/kippasolidaritaet/">Haltungen</a>, 
  <a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Standpunkte</a> und 
  <a href="https://karsten-reincke.de/genderismus/">Einstellungen</a> erinnern. 
  Damit ich nicht hinter mich zurückfalle. Denn gesagt ist gesagt. 
  Darum geht es auch in hier.</p>
<hr class="wp-block-separator has-alpha-channel-opacity">
<p class="has-text-align-right">Im Übrigen: <i class="fa-solid fa-venus-mars"></i> 
<a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Männer</a> 
sind <a href="https://karsten-reincke.de/genderismus/">mitgemeint</a>.</p>
<p>The post <a href="https://karsten-reincke.de/atom-and-vim/">Atom und Vi(m)-Plugin: ein Traum wird wahr</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://karsten-reincke.de/atom-and-vim/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>gtgt oder das Leben danach</title>
		<link>https://karsten-reincke.de/gtgt/</link>
					<comments>https://karsten-reincke.de/gtgt/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Fri, 21 Aug 2020 12:28:59 +0000</pubDate>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Programmierung]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=2927</guid>

					<description><![CDATA[<p>2000 hatte ich unter dem Namen gtgt — gesprochen gitty-gitty — die GNU Template Generation Tools veröffentlicht, mit denen sich Softwareprojekte so anlegen ließen, dass sie direkt zu den GNU Autotools passten. Nach wenigen Jahren waren sie überholt — von neuen Sprachen, Techniken und Tools. Jetzt aber haben wir sie im Kontext von TDOSCA wiederbelebt [&#8230;]</p>
<p>The post <a href="https://karsten-reincke.de/gtgt/">gtgt oder das Leben danach</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="alignright size-full"><img decoding="async" width="60" height="57" src="https://karsten-reincke.de/wp-content/uploads/2023/06/gtgt-logo.gif" alt class="wp-image-7883"></figure>
</div>


<p>2000 hatte ich unter dem Namen<em> gtgt</em> — gesprochen<em> gitty-gitty</em> — die GNU Template Generation Tools veröffentlicht, mit denen sich Softwareprojekte so anlegen ließen, dass sie direkt zu den GNU Autotools passten. Nach wenigen Jahren waren sie überholt — von neuen Sprachen, Techniken und Tools. Jetzt aber haben wir sie im Kontext von <a href="https://karsten-reincke.de/tdosca/">TDOSCA</a> wiederbelebt und aktualisiert:<span id="more-2927"></span></p>


<div class="container"><div class="d-flex justify-content-end sample-row"><div class="col-xs"><div class="text-right">[ de | <a href="https://fodina.de/gtgt">en</a> ]</div></div></div></div>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Was es ist:</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><span style="font-family: 'Arima Madurai'; font-style: normal; color: #800;font-weight: bold;"><a href="http://github.com/kreincke/gitty-gitty/">gtgt</a></span> — resp. <em>gitty-gitty</em> — besteht aus Skripten, mit denen sich c/c++ Entwicklungen so initialisieren lassen, dass sie — trotz freier Lizenzwahl — direkt mit den <a href="https://de.wikipedia.org/wiki/GNU_Build_System">GNU autotools</a> verwaltet werden können. Wie man das macht, wird in der <a href="https://github.com/kreincke/gitty-gitty/blob/master/FAQ.md">gtgt-FAQ</a> erläutert, die jedem Paket beiliegt. Wiederbelegt worden ist <em>gtgt</em>, um damit Testdaten zu erzeugen, die — unter der Hoheit der <a href="https://www.openchainproject.org/news/2019/07/25/openchain-launches-tooling-work-group">Open Chain Toolong Working Group</a> — in die Umsetzung einer T<a href="https://github.com/Open-Source-Compliance/tdosca">est Driven Open Source Compliance Automation</a> einfließen sollen.</p>
</blockquote>



<h2 class="wp-block-heading">Woher man es bekommt:</h2>



<p><strong><a href="http://github.com/kreincke/gitty-gitty/">gtgt</a></strong> steht <a href="https://github.com/kreincke/gitty-gitty/">auf Github zum Download</a> bereit: man kann das Repository wie üblich clonen, es über GitHub als Zip-Datei herunterladen oder direkt aus dem <a href="https://github.com/kreincke/gitty-gitty/tree/releases">Release-Branch</a> downloaden.</p>



<h2 class="wp-block-heading">Wie man es nutzt:</h2>



<p>Die Nutzung von <strong><a href="http://github.com/kreincke/gitty-gitty/">gtgt</a></strong> wird in einer <a href="https://github.com/kreincke/gitty-gitty/blob/master/FAQ.md">FAQ</a> beschrieben.</p>



<h2 class="wp-block-heading">Was man damit tun darf:</h2>



<p><strong><a href="http://github.com/kreincke/gitty-gitty/">gtgt</a></strong> selbst steht unter den Bedingungen der <a href="https://opensource.org/licenses/GPL-3.0">GPL‑3.0</a>. Sie dürfen den Output — also den instantiierten Programmcode und das generierte Projektverzeichnis samt der gtgt-Skripte — jedoch unter jeder anderen Open- oder Closed-Source-Lizenz weitergeben. Die Resultate gelten nicht als ‘derivative work’, obwohl sie durch <em>c&amp;p</em> aus den gtgt-Skripten erzeugt werden.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-heart-pulse"></i> Und in welchem größere Zusammenhang …</h5> 
  <p class="myPageContext">… steht dieser Text? Nun, <a href="https://karsten-reincke.de/kreincke/">mein Leben</a> 
  ist eingebettet in <a href="https://karsten-reincke.de/skills/">freie Software</a>, 
  <a href="https://karsten-reincke.de/category/lovlyak/">Natur</a> und <a href="https://karsten-reincke.de/workshops/">Musik</a>. 
  Manchmal finde ich da abseitigere Wege und <a href="https://karsten-reincke.de/cwa/">Tools</a>, die es trotzdem wert 
  sind, geteilt zu werden. Und sei es nur mit meinem vergesslichen zukünftigen ‘ich’. Dem ich gerne immer 
  wieder einmal <a href="https://karsten-reincke.de/strato-wordpress-per-ssh/">ein Strato über die Shell</a> ans Herz lege. 
  Oder <a href="https://karsten-reincke.de/atom-ubuntu/">passend</a> 
  <a href="https://karsten-reincke.de/atom-and-vim/">erweiterte</a> <a href="https://karsten-reincke.de/vscodium/">Editoren</a>. 
  Oder uralte <a href="https://karsten-reincke.de/gtgt/">Vorarbeiten</a>.
  Manchmal möchte ich dieses ‘ich’ aber auch nur an <a href="https://karsten-reincke.de/kippasolidaritaet/">Haltungen</a>, 
  <a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Standpunkte</a> und 
  <a href="https://karsten-reincke.de/genderismus/">Einstellungen</a> erinnern. 
  Damit ich nicht hinter mich zurückfalle. Denn gesagt ist gesagt. 
  Darum geht es auch in hier.</p>
<hr class="wp-block-separator has-alpha-channel-opacity">
<p class="has-text-align-right">Im Übrigen: <i class="fa-solid fa-venus-mars"></i> 
<a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Männer</a> 
sind <a href="https://karsten-reincke.de/genderismus/">mitgemeint</a>.</p>
<p>The post <a href="https://karsten-reincke.de/gtgt/">gtgt oder das Leben danach</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://karsten-reincke.de/gtgt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Atom unter Ubuntu 20.04</title>
		<link>https://karsten-reincke.de/atom-ubuntu/</link>
					<comments>https://karsten-reincke.de/atom-ubuntu/#comments</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 11:46:48 +0000</pubDate>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Editor]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=2887</guid>

					<description><![CDATA[<p>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: Geben wir ‘Atom’ unter Ubuntu 20.04 eine Chance, selbst wenn [&#8230;]</p>
<p>The post <a href="https://karsten-reincke.de/atom-ubuntu/">Atom unter Ubuntu 20.04</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>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: Geben wir ‘<a href="https://atom.io/">Atom</a>’ unter Ubuntu 20.04 eine Chance, selbst wenn wir dafür einige Klippen umschiffen müssen.<span id="more-2887"></span></p>


<div class="container"><div class="d-flex justify-content-end sample-row"><div class="col-xs"><div class="text-right">[ de | <a href="https://fodina.de/atom-ubuntu">en</a> ]</div></div></div></div>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



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



<ul class="wp-block-list">
<li>Rechtschreibprüfung für deutsch-englische Texte</li>



<li>bei gleichzeitigem Syntax-Highlighting</li>



<li>und Code-Completion für Latex, Markdown, HTML PHP, C/C++, Java, bash</li>



<li>Nahtlose Integration in eine mobile Laptop-Arbeitsumgebung</li>



<li>Gute Markdown-Unterstützung.</li>
</ul>



<p>Und machen wir uns dann daran, den Editor zu installieren und zu konfigurieren:</p>



<h2 class="wp-block-heading">Die Standard-Ubuntu-Methode: Geradeaus klappt’s nicht!</h2>



<p>Mit der Version 20.04 wird das neue Snap-Paketformat zum kaum zu umgehenden Standardformat. Viele Programme — darunter ‘Atom’ — werden schon gar nicht mehr als 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:</p>



<ul class="wp-block-list">
<li>So wurde meine erste Installation nach einigen Tagen nicht mehr im Bestand geführt: weder <code>snap list atom</code> noch <code>snap list --all</code> 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 <code>snap remove atom</code> entfernen (und wieder installieren)</li>



<li>Nur reagierte die Version — <a href="ttps://github.com/atom/atom/issues/20942">wie im Netz beschrieben</a> — immer noch unschön: Sie öffnete — unverhinderbar — bei jedem Aufruf zwei völlig nutzlose Dokumente.</li>
</ul>



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



<h2 class="wp-block-heading">Auch der .deb-Umweg scheitert.</h2>



<p>Die offizielle <a href="https://flight-manual.atom.io/getting-started/sections/installing-atom/">Atom-Dokumentation</a> beschreibt zwei Wege zur Installation von Atom. Beim einfacheren Weg lädt man sich das .deb-Paket herunter und installiert es mit <code>sudo dpkg -i atom-amd64.deb</code>. Leider scheitert das unaufgelöster Abhängigkeiten wegen.</p>



<h2 class="wp-block-heading">Aber wenigstens der komplexe Weg führt weiter …</h2>



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



<pre class="wp-block-code"><code>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" &gt; /etc/apt/sources.list.d/atom.list'
3. sudo apt-get update
4. sudo apt-get install atom</code></pre>



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



<h2 class="wp-block-heading">… bedarf aber noch zusätzlicher Pakete …</h2>



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



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



<p>Damit können wir uns die zusätzlichen Pakete holen, die wir brauchen:</p>



<ul class="wp-block-list">
<li>Zum ersten wollen wir ‘Atom’ als LaTeX-Editor verwenden. Dafür müssen wir ihm die LaTeX-Syntax beibringen: <code>apm install language-latex</code></li>



<li>Dann wollen wir ‘Atom’ u.U. auch als LaTeX-IDE verwenden, also müssen wir ihm die LaTeX-Build-Kommandos zugänglich machen: <code>apm install latex</code></li>



<li>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 <em>Linter</em> und Submodule beibringen <code>apm install linter linter-spell linter-ui-default linter-spell-latex</code>. Für die anderen Sprachen gibt es entsprechendes, z.B. <code>apt install linter-php</code></li>



<li>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: <code>apm install dark-mode</code>. Den Toggle-Befehl findet man — wie üblich — unter <code>Packages/dark mode</code>.</li>



<li>Für unsere Markdown-Aktivitäten brauchen wir fast nichts zu tun: Das Syntax-Highlighting läuft out-of-the-box. Und über <code>Packages/Markdown Preview</code> können wir uns das nach html konvertierte Dokument direkt ansehen. Um es in eine PDF-Datei umzuwandeln, ohne in die Shell zu <em>pandoc</em> zu wechseln, brauchen wir noch ein Package: <code>apm install markdown-pdf</code>. Nach dem Neustart können wir das Package unter <code>File/Settings/Packages#markdown-pdf</code> konfigurieren und finden unter <code>Packages/Markdown To PDF</code> das Umwandlungskommando.</li>
</ul>



<h2 class="wp-block-heading">… und Anpassungen der Konfiguration:</h2>



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



<p>Wir benötigen beide Methoden:</p>



<ul class="wp-block-list">
<li>Zum ersten soll unser ‘Atom’ ein <em>Softwrap</em> verwenden, also eine lange Textteile automatisch umbrechen, ohne die Zeile wirklich mit einen <code>LF</code> (Linux) bzw. <code>CR LF</code> (Windows) umzubrechen. Dazu aktivieren wir unter <code>Edit/Preferences#Editor</code> das <em>Soft Wrap</em> mittels eines Hakens. Dazu legen wir dann auch noch fest, dass der virtuelle Umbruch nicht am Fensterrand erfolgt, sondern an der maximalen Zeilenbreite <em>Soft Wrap At Preferred Line Length</em></li>



<li>Dann soll unser ‘Atom’ die Rechtschreibung in gemischtsprachigen Texten überprüfen können. Dazu konfigurieren wir das Package <code>Edit/Preferences/Packages/spell-check</code> entsprechend:
<ul class="wp-block-list">
<li>Wir aktivieren <code>Use Locales</code> per Häkchen.</li>



<li>Und wir tragen in das Feld <em>Locales</em> <code>en-US, de_DE</code> ein.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">Und damit haben wir, was wir wollten:</h2>



<p>‘Atom’ tritt als <a href="https://atom.io/">hackable text editor</a> an. Das Netz weiß um <a href="https://www.google.de/search?q=best&amp;q=atom&amp;q=package">seine besten Erweiterung</a>. Man braucht sich nur inspirieren zu lassen. Die Methoden bleiben die, die wir hier angewendet und mit denen wir unsere Ziele erreicht haben:</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Feature</th><th>Status</th></tr></thead><tbody><tr><td>1.)</td><td>Rechtschreibprüfung für gemischtsprachige Texte</td><td>✓</td></tr><tr><td>2.)</td><td>Kontextsensitive Rechtschreibprüfung in Programmiersprachen</td><td>✓</td></tr><tr><td>3.)</td><td>Syntax-Highlighting für Latex, HTML PHP, C/C++, Java, bash</td><td>✓</td></tr><tr><td>4.)</td><td>Code-Completion für Latex, HTML PHP, C/C++, Java, bash</td><td>✓</td></tr><tr><td>5.)</td><td>Integration in ein Laptop auch für sonnige Arbeitsplätze</td><td>✓</td></tr><tr><td>6.)</td><td>Markdown-Unterstützung</td><td>✓</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Ein letztes Geständnis</h2>



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


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-heart-pulse"></i> Und in welchem größere Zusammenhang …</h5> 
  <p class="myPageContext">… steht dieser Text? Nun, <a href="https://karsten-reincke.de/kreincke/">mein Leben</a> 
  ist eingebettet in <a href="https://karsten-reincke.de/skills/">freie Software</a>, 
  <a href="https://karsten-reincke.de/category/lovlyak/">Natur</a> und <a href="https://karsten-reincke.de/workshops/">Musik</a>. 
  Manchmal finde ich da abseitigere Wege und <a href="https://karsten-reincke.de/cwa/">Tools</a>, die es trotzdem wert 
  sind, geteilt zu werden. Und sei es nur mit meinem vergesslichen zukünftigen ‘ich’. Dem ich gerne immer 
  wieder einmal <a href="https://karsten-reincke.de/strato-wordpress-per-ssh/">ein Strato über die Shell</a> ans Herz lege. 
  Oder <a href="https://karsten-reincke.de/atom-ubuntu/">passend</a> 
  <a href="https://karsten-reincke.de/atom-and-vim/">erweiterte</a> <a href="https://karsten-reincke.de/vscodium/">Editoren</a>. 
  Oder uralte <a href="https://karsten-reincke.de/gtgt/">Vorarbeiten</a>.
  Manchmal möchte ich dieses ‘ich’ aber auch nur an <a href="https://karsten-reincke.de/kippasolidaritaet/">Haltungen</a>, 
  <a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Standpunkte</a> und 
  <a href="https://karsten-reincke.de/genderismus/">Einstellungen</a> erinnern. 
  Damit ich nicht hinter mich zurückfalle. Denn gesagt ist gesagt. 
  Darum geht es auch in hier.</p>
<hr class="wp-block-separator has-alpha-channel-opacity">
<p class="has-text-align-right">Im Übrigen: <i class="fa-solid fa-venus-mars"></i> 
<a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Männer</a> 
sind <a href="https://karsten-reincke.de/genderismus/">mitgemeint</a>.</p>
<p>The post <a href="https://karsten-reincke.de/atom-ubuntu/">Atom unter Ubuntu 20.04</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://karsten-reincke.de/atom-ubuntu/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Die Corona Warn App als Open Source Software</title>
		<link>https://karsten-reincke.de/cwa/</link>
					<comments>https://karsten-reincke.de/cwa/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Tue, 16 Jun 2020 11:00:00 +0000</pubDate>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[FOSS]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=2767</guid>

					<description><![CDATA[<p>Heute zeigte sich die CWA — die Corona-Warn-App — der Öffentlichkeit. Sie gibt ein positives Bild. Das sagen selbst Spiegel und Welt. Die deutsche Regierung wollte sie als Open-Source-Software veröffentlichen, um die Akzeptanz bei der Bevölkerung zu erhöhen. Trotzdem gibt es noch einige Skepsis. Ich möchte ein paar spezielle Bedenken kommentieren: Zweitens sagen manche, das [&#8230;]</p>
<p>The post <a href="https://karsten-reincke.de/cwa/">Die Corona Warn App als Open Source Software</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Heute zeigte sich die CWA — die Corona-Warn-App — der Öffentlichkeit. Sie gibt ein positives Bild. Das sagen selbst  <a href="https://www.spiegel.de/netzwelt/apps/coronavirus-was-sie-ueber-die-warn-app-wissen-sollten-a-b823e18d-d235-42d5-8516-47015cda6c8b">Spiegel</a> und <a href="ttps://www.welt.de/wirtschaft/webwelt/article209655419/Corona-Warn-App-im-Test-Funktion-Design-Leistung-was-kann-das-Programm.html">Welt</a>. Die deutsche Regierung wollte sie als Open-Source-Software veröffentlichen, um die Akzeptanz bei der Bevölkerung zu erhöhen. Trotzdem gibt es noch einige Skepsis. Ich möchte ein paar spezielle Bedenken kommentieren:<span id="more-2767"></span></p>


<div class="container"><div class="d-flex justify-content-end sample-row"><div class="col-xs"><div class="text-right">[ de | <a href="https://fodina.de/cwa">en</a> ]</div></div></div></div>



<div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><em>Gelegentlich höre ich, die Corona-Warn-App sei gar keine echte Open-Source-Software. Denn sie nutze ja die nativen Google-/Android- bzw. Apple-/iOS- Funktionen mit proprietären Anteilen. </em><strong>Das zu behaupten, ist formal und inhaltlich nicht adäquat:</strong>
<ul class="wp-block-list">
<li><a href="https://opensource.org/">Open-Source-Software</a> ist, was unter einer <a href="https://opensource.org/licenses/alphabetical">Open-Source-Lizenz </a>veröffentlicht ist. Und was eine Open Source Lizenz ist, ist <a href="https://opensource.org/osd">von der Open-Source-Initiative definiert</a>. Die Corona Warn App wird nachweislich unter der <a href="https://github.com/corona-warn-app/cwa-documentation/blob/master/LICENSE">Apache-v2 Lizenz </a>veröffentlicht.</li>



<li>Die ‚Open-Source-Haftigkeit‘ einer Software ist schon seit R. Stallmann völlig unabhängig davon, auf welchem (proprietären) Betriebssystem sie läuft. Zu seiner frühen Zeit ging es noch um die Unix-Derivate. Die kamen mit mehr oder minder geschlossenen Basisbibliotheken daher und führten die Open-Source-Software als Prozess aus. Wer Open-Source wirklich nur das nennen will, was in einem gänzlich freien Stack von Open-Source-Software genutzt wird, scheitert damit in der Regel schon am BIOS.</li>
</ul>
</li>
</ul>


<ul>
<li><em>Zweitens sagen manche, das System sei <span style="color: red;">nicht vertrauenswürdig</span> (weil eben doch Daten zur Regierung kommen).</em><strong> Dem stehen die <span style="color: #008800;">drei Prinzipien der Offenheit , Freiwilligkeit und der Wahrung der Anonymität</span> entgegen</strong>:
<ul>
<li>Ich selbst entscheide ja, ob ich die App installiere oder nicht. Wenn ich sie installiere, plottet die darunter liegende iOS-/Android-Funktionen per Bluetooth mit, welche anderen Handies ‚in der Nähe‘ sind. D.h. auf meinem Handy entsteht eine Liste der Identifikatoren der anderen Handys – aber eben nur auf meinem Handy. So, wie meine Handy-ID umgekehrt in den Listen der anderen Handys auftaucht.</li>
<li>Jeder kann anhand des offen gelegten Codes (Apps, Server, Verification System) alles überprüfen, insbesondere, dass keines der Programme diese Identifikatoren an Dritte z.B. einen Regierungsserver weitergibt. Sie bleiben auf dem entsprechenden Handy.</li>
<li>Ich selbst entscheide außerdem, ob ich, wenn ich erkranke, meine Erkrankung kundtue. Wenn ich das tue, wird über einen Scancode gewährleistet, dass ich nur als wirklich Getesteter mein Ergebnis in das System eingebe.</li>
<li>Wenn ich mich oute, steht jedoch nur mein Handyidentifier online zum Abruf bereit, nicht meine Daten.</li>
<li>Ferner entscheide ich selbst, ob ich mir mehr oder minder regelmäßig vom Server die Handy-Identifikatoren der Erkrankten abhole und LOKAL auf meinem Handy mit den Handy-Identifikatoren meiner ‚Begegnungen‘ vergleichen lasse.</li>
<li>Es gibt an keiner Stelle eine Verknüpfung meiner Personendaten mit meinem Handy-Identifier. Jeder kann im Code überprüfen, dass das System das NICHT tut. Und die einzigen, die das sonst noch tun könnten, wären Apple und Google. Dazu hätten sie aber böswillig Schadcode in ihre Basisbibliotheken einbauen müssen. Und mit der amerikanischen und/oder deutschen Regierung ein geheimes technisches Austauschsystem aufsetzen müssen. Liebe Verschwörungstheoretiker: Hätten die Firmen das tun wollen, gäbe es auf den Geräten einfachere, effektivere und kostengünstigere Möglichkeiten, so etwas umsetzen.</li>
</ul>
</li>
</ul>


<ul class="wp-block-list">
<li><em>Und schließlich vermuten einige, die Corona Warn App werde <font color="red">später heimlich</font> und unter der Hand doch noch <font color="red">in ein staatliches Trackingsystem umgebaut</font>.</em><strong><font color="#008800">Das wird aber nicht funktionieren</font></strong>:
<ul class="wp-block-list">
<li>Der Quellcode steht öffentlich zur Verfügung. Wollte man also später eine veränderte ‚Version‘ heimlich in Verkehr bringen, müssten die Apps zuletzt doch wieder in die offiziellen Stores eingepflegt werden – und zwar unter Wahrung der offiziellen Releasenummern. </li>



<li>Das wäre nicht geheim zu halten: Irgendjemand würde bestimmt einmal die Apps aus dem offiziellen Repo kompilieren und – wenigstens von der Größe her – mit den auf dem Handy installierten vergleichen. Gäbe es dort signifikante Abweichungen – und die wird es geben, wenn man in die gute Version heimlich geheimen Schadcode einpflegen würde – gäbe es einen Aufschrei.</li>
</ul>
</li>
</ul>



<p>Langer Rede kurzer Sinn: Wir dürfen dieser Arbeit vertrauen. Und wir sollten sie benutzen. Das schützt unser Gesundheitssystem vor einer Überlastung (während der 2. Welle).</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-heart-pulse"></i> Und in welchem größere Zusammenhang …</h5> 
  <p class="myPageContext">… steht dieser Text? Nun, <a href="https://karsten-reincke.de/kreincke/">mein Leben</a> 
  ist eingebettet in <a href="https://karsten-reincke.de/skills/">freie Software</a>, 
  <a href="https://karsten-reincke.de/category/lovlyak/">Natur</a> und <a href="https://karsten-reincke.de/workshops/">Musik</a>. 
  Manchmal finde ich da abseitigere Wege und <a href="https://karsten-reincke.de/cwa/">Tools</a>, die es trotzdem wert 
  sind, geteilt zu werden. Und sei es nur mit meinem vergesslichen zukünftigen ‘ich’. Dem ich gerne immer 
  wieder einmal <a href="https://karsten-reincke.de/strato-wordpress-per-ssh/">ein Strato über die Shell</a> ans Herz lege. 
  Oder <a href="https://karsten-reincke.de/atom-ubuntu/">passend</a> 
  <a href="https://karsten-reincke.de/atom-and-vim/">erweiterte</a> <a href="https://karsten-reincke.de/vscodium/">Editoren</a>. 
  Oder uralte <a href="https://karsten-reincke.de/gtgt/">Vorarbeiten</a>.
  Manchmal möchte ich dieses ‘ich’ aber auch nur an <a href="https://karsten-reincke.de/kippasolidaritaet/">Haltungen</a>, 
  <a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Standpunkte</a> und 
  <a href="https://karsten-reincke.de/genderismus/">Einstellungen</a> erinnern. 
  Damit ich nicht hinter mich zurückfalle. Denn gesagt ist gesagt. 
  Darum geht es auch in hier.</p>
<hr class="wp-block-separator has-alpha-channel-opacity">
<p class="has-text-align-right">Im Übrigen: <i class="fa-solid fa-venus-mars"></i> 
<a href="https://karsten-reincke.de/maenner-sind-mitgemeint/">Männer</a> 
sind <a href="https://karsten-reincke.de/genderismus/">mitgemeint</a>.</p>
<p>The post <a href="https://karsten-reincke.de/cwa/">Die Corona Warn App als Open Source Software</a> appeared first on <a href="https://karsten-reincke.de">Freigiebigkeit</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://karsten-reincke.de/cwa/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
