{"id":225612,"date":"2019-12-03T00:30:44","date_gmt":"2019-12-02T23:30:44","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=225612"},"modified":"2019-12-03T00:33:09","modified_gmt":"2019-12-02T23:33:09","slug":"open-source-software-projekt-cudatext","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2019\/12\/03\/open-source-software-projekt-cudatext\/","title":{"rendered":"Open Source Software-Projekt CudaText"},"content":{"rendered":"<p>Heute noch ein kleiner Gastbeitrag von Blog-Leser Andreas H. (alias dinkumoil auf GitHub und SourceForge), der sich seit einiger Zeit an dem Open Source Software-Projekt CudaText (Texteditor f\u00fcr mehrere Plattformen) beteiligt.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/vg01.met.vgwort.de\/na\/00de6b56a9ab48d8a08e64bf2d449635\" width=\"1\" height=\"1\"\/>Auf der Suche nach einem guten Texteditor f\u00fcr mehrere Rechnerplattformen? Oder einfach mal aus Neugierde einen neuen Editor ausprobieren? Dann k\u00f6nnte der Open Source Software-Projekt CudaText etwas sein. Der Autor ist ein erfahrener russischer Entwickler, der in vergangenen Jahren bereits den Editor SynWrite entwickelt hat (Entwicklung mittlerweile eingestellt). Dieser kann im TotalCommander als Textbetrachter-Plugin nachinstalliert werden, existiert aber auch als eigenst\u00e4ndiges Programm.<\/p>\n<h2>Das CudaText-Projekt im \u00dcberblick<\/h2>\n<p>Das CudaText-Projekt zeichnet sich vor allem durch eine schnell voranschreitende Entwicklung und einen sehr aktiven, hilfsbereiten und prompt reagierenden Entwickler aus. Das Programm selbst ist cross-plattform-Projekt angelegt, es l\u00e4uft auf Windows, Mac OS X, verschiedenen Linux-Distributionen, FreeBSD und Solaris. <\/p>\n<p>Unterst\u00fctzte Prozessorplattformen sind Intel 32\/64 Bit und ARM\/AArch64. Im Funktionsumfang kann es mit Veteranen des Genres wie z.B. Notepad++ auf jeden Fall mithalten, auf einigen Gebieten ist CudaText sogar besser. <\/p>\n<p>Entwickelt wird die Software in Object Pascal mit der Open Source IDE Lazarus und dem Free Pascal Compiler (beide ebenfalls cross-plattform). Die Mitarbeit am Projekt ist sehr willkommen und mit einem GitHub Account problemlos m\u00f6glich.<\/p>\n<p><img decoding=\"async\" title=\"CudaText\" alt=\"CudaText\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/9\/92\/CudaText_ScreenShot.png\/640px-CudaText_ScreenShot.png\"\/><\/p>\n<h2>CudaText-Leistungsmerkmale<\/h2>\n<p>Cuda bedeutet in einigen slawischen Sprachen \"Wunder\" oder \"Wunderwerk\". Alleine wenn man sich die Vielfalt der unterst\u00fctzten Plattformen anschaut, ist das ein durchaus berechtigter Terminus. Aber auch die Liste der Leistungsmerkmale ist lang und vielf\u00e4ltig.<\/p>\n<ul>\n<li>Als wichtigstes Feature: CudaText ist \u00fcber Plugins (programmiert in Python) erweiterbar.  <\/li>\n<li>Der Editor stellt eine umfangreiche Programmierschnittstelle zur Verf\u00fcgung, die laufend erweitert wird. <\/li>\n<\/ul>\n<p>Der Entwickler h\u00e4lt dabei die sehr ausf\u00fchrliche Dokumentation des Editors und der Programmierschnittstelle immer aktuell. Dadurch lassen sich nicht nur dringend ben\u00f6tigte Funktionen kurzfristig selbst nachr\u00fcsten sondern auch sehr umfangreiche Erweiterungen erg\u00e4nzen, die jedoch nicht von allen Nutzern ben\u00f6tigt werden. <\/p>\n<p>Dementsprechend existiert eine gro\u00dfe Zahl n\u00fctzlicher Plugins, die \u00fcber einen integrierten Plugin-Manager aufgelistet, installiert und nat\u00fcrlich auch wieder deinstalliert werden k\u00f6nnen. Darunter sind Leckerbissen wie z.B. ein Textvergleichs-Plugin, mit dem Unterschiede in zwei Versionen eines Dokumentes farblich hervorgehoben und ins jeweils andere Dokument \u00fcbertragen werden k\u00f6nnen, oder ein SQL-Plugin mit dem sich die Ergebnisse von Abfragen verschiedenster Datenbank-Server direkt im Editor anzeigen lassen. <\/p>\n<p>Aber auch Features wie Sortierfunktionen, synchrones scrollen von zwei ge\u00f6ffneten Dokumenten oder synchrones editieren aller Vorkommnisse eines Wortes innerhalb eines selektierten Textbereichs werden als Plugins nachger\u00fcstet.<\/p>\n<ul>\n<li>Es werden weit verbreitete Zeichenkodierungen f\u00fcr viele europ\u00e4ische und asiatische Sprachen unterst\u00fctzt. Auch UTF-8 und UTF-16 sind nat\u00fcrlich dabei. Beim \u00d6ffnen von Dateien wird versucht, die Zeichenkodierung automatisch zu erkennen. Eine manuelle Korrektur ist nat\u00fcrlich m\u00f6glich und wird, solange die Datei in der Liste der zuletzt ge\u00f6ffneten Dateien (Recent Files List) enthalten ist, vom Programm gespeichert und beim n\u00e4chsten \u00d6ffnen der Datei wiederhergestellt.  <\/li>\n<li>Syntaxhervorhebung f\u00fcr mehr als 200 Programmiersprachen, die exotischeren m\u00fcssen allerdings als Plugin nachger\u00fcstet werden.  <\/li>\n<li>Separates Programm zur Erzeugung von eigenen Lexern, um auch f\u00fcr sehr spezielle Programmiersprachen oder Steuerdateien eine Syntaxhervorhebung zur Verf\u00fcgung zu haben. Der Lexer-Generator unterst\u00fctzt die Verwendung von regul\u00e4ren Ausdr\u00fccken (Regular Expressions).  <\/li>\n<li>Bei der Erzeugung der Lexer kann festgelegt werden, welche Elemente im sog. Code-Baum erscheinen, mit dessen Hilfe eine schnelle Navigation in der Datei zwischen z.B. Funktionen und Deklarationen von Datentypen und Klassen m\u00f6glich ist. <\/li>\n<li>Autovervollst\u00e4ndigung von Programm-Code ist f\u00fcr verschiedene Programmiersprachen verf\u00fcgbar, teilweise out-of-the-box oder als Plugin nachr\u00fcstbar. <\/li>\n<li>Code Folding, d.h. Einklappen von Code-Bl\u00f6cken zur Verbesserung der \u00dcbersicht. <\/li>\n<li>Multiples Selektieren von Text und multiple Text-Cursor, d.h. gleichzeitiges Editieren von mehreren Textstellen. <\/li>\n<li>Bis zu 6 Editierbereiche mit jeweils einer unbegrenzten Anzahl an Tabs (ge\u00f6ffneten Dateien). Jeder Tab kann nochmals in zwei Bereiche unterteilt werden, die verschiedene Dateien anzeigen. <\/li>\n<li>Suchen &amp; Ersetzen unterst\u00fctzt die Verwendung von regul\u00e4ren Ausdr\u00fccken. <\/li>\n<li>Minimap und Micromap verf\u00fcgbar, die einen schnellen \u00dcberblick \u00fcber den (Quell-)Text erm\u00f6glichen und z.B. ge\u00e4nderte Textstellen oder weitere Vorkommen des gerade selektierten Wortes anzeigen. <\/li>\n<li>HTML Farbcodes werden mit einer dem Farbcode entsprechend eingef\u00e4rbten Linie unterstrichen.  <\/li>\n<li>Anzeige von Bildern im Text. <\/li>\n<li>Hex-Editor Modus zur Anzeige des Inhalts von Dateien als Hexadezimalzahlen. <\/li>\n<li>Session-Feature, d.h. der Editor \u00f6ffnet beim Start wieder die Dateien, die beim letzten Lauf ge\u00f6ffnet waren. Dabei wird die Cursor-Position, der selektierte Text und auch eine evtl. manuell eingestellte Zeichenkodierung wiederhergestellt.<\/li>\n<\/ul>\n<p>Die Benutzeroberfl\u00e4che arbeitet, wie oben schon erw\u00e4hnt, mit Tabs und kann mit der Hilfe von Plugins vollst\u00e4ndig angepasst werden. Das bezieht sich sowohl auf das Hauptmen\u00fc, die Toolbar und die Tastaturk\u00fcrzel als auch auf die Farbgebung der Oberfl\u00e4che mit sog. Themes. Einige Themes liegen bereits bei, andere k\u00f6nnen nachinstalliert werden. F\u00fcr viele Sprachen stehen \u00dcbersetzungsdateien zur Verf\u00fcgung, mit dem die Benutzeroberfl\u00e4che lokalisiert werden kann. Diese sind leider oftmals veraltet, f\u00fcr die deutsche Sprachdatei kann ich jedoch sagen, dass sie aktuell ist, da ich selbst deren Betreuung \u00fcbernommen habe.<\/p>\n<h2>Hinweise zum Programm<\/h2>\n<p>F\u00fcr Windows-Benutzer ist es etwas gew\u00f6hnungsbed\u00fcrftig, dass es keinen Einstellungsdialog gibt. Programmeinstellungen (und davon gibt es eine Menge!) werden \u00fcber eine Textdatei im JSON-Format konfiguriert. Es gibt ein Plugin mit dem dies etwas erleichtert wird, indem mit einer Volltextsuche in der angezeigten Liste der Einstellungen gesucht und ihr Wert gesetzt werden kann. Dieser Ansatz setzt sich seit einigen Jahren bei Texteditoren immer mehr durch.<\/p>\n<p>Auch die Kommandoliste ist ein solches Feature, der Texteditor Sublime machte es bekannt. Per Hauptmen\u00fceintrag oder Tastenkombination eingeblendet, stellt sie eine Volltextsuche nach allen verf\u00fcgbaren Befehlen zur Verf\u00fcgung. In der neusten Version, die in K\u00fcrze erscheinen wird, ist \u00fcber die Kommandoliste auch die Suche nach gerade ge\u00f6ffneten Dateien und das Filtern der Ergebnisse nach Plugins und Lexern m\u00f6glich.<\/p>\n<p>Das Programm muss nicht installiert werden, der Download besteht aus einer ZIP-Datei, die in irgendein Verzeichnis, in dem man Schreibrechte hat, entpackt werden kann. Bei einem Update (kommt monatlich mehrmals vor) muss die neue Version nur in das bereits vorhandene Verzeichnis entpackt werden. <\/p>\n<p>Sollte man Themes, Lexer oder andere Standard-Konfigurationsdateien angepasst haben, sollte man die neue Version nat\u00fcrlich in ein separates Verzeichnis entpacken und z.B. mit Hilfe des Textvergleich-Plugins die \u00c4nderungen aus der alten Version in die neue \u00fcbernehmen. Die normalen Benutzereinstellungen werden allerdings in einem separaten Verzeichnis gespeichert, das beim Update NICHT \u00fcberschrieben wird.<\/p>\n<p>\u00c4stheten, die nur einen kurzen Blick auf eine frisch ausgepackte Version von CudaText werfen, werden evtl. entt\u00e4uscht sein. Das Programm pr\u00e4sentiert sich zun\u00e4chst als graue Maus mit sehr \"modernen\" (sprich langweilig-einfarbigen) Icons. Aber dem kann durch das Installieren von Plugins, Themes und Icon-Bibliotheken abgeholfen werden.<\/p>\n<p>Als Fazit kann ich jedem nur empfehlen, sich das Programm mal anzuschauen. Das Engagement des Entwicklers ist vorbildlich und gew\u00e4hrleistet eine st\u00e4ndige Fortentwicklung des Projekts. Zu erw\u00e4hnen ist nat\u00fcrlich auch, dass man sich je nach seinen pers\u00f6nlichen M\u00f6glichkeiten entweder an der Arbeit am Projekt in Form von Code beteiligen oder eine kleine Spende entrichten sollte (siehe \"Sponsor\" Button im GitHub Repository), wenn man CudaText regelm\u00e4\u00dfig nutzt. Denn nur so funktioniert Open Source auf Dauer.<\/p>\n<p>Wikipedia-Artikel: <a href=\"https:\/\/de.wikipedia.org\/wiki\/CudaText\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/de.wikipedia.org\/wiki\/CudaText<\/a><br \/>GitHub Repository: <a href=\"https:\/\/github.com\/Alexey-T\/CudaText\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/Alexey-T\/CudaText<\/a><br \/>SourceForge Repository: <a href=\"https:\/\/sourceforge.net\/projects\/cudatext\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/sourceforge.net\/projects\/cudatext\/<\/a><br \/>Homepage &amp; Forum: <a href=\"http:\/\/www.uvviewsoft.com\/cudatext\/\">http:\/\/www.uvviewsoft.com\/cudatext\/<\/a><br \/>Download-Seite: <a href=\"https:\/\/www.fosshub.com\/CudaText.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.fosshub.com\/CudaText.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heute noch ein kleiner Gastbeitrag von Blog-Leser Andreas H. (alias dinkumoil auf GitHub und SourceForge), der sich seit einiger Zeit an dem Open Source Software-Projekt CudaText (Texteditor f\u00fcr mehrere Plattformen) beteiligt.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7459],"tags":[3836],"class_list":["post-225612","post","type-post","status-publish","format-standard","hentry","category-software","tag-software"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/225612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=225612"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/225612\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=225612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=225612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=225612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}