frank-w
Anmeldungsdatum: 30. September 2008
Beiträge: 419
|
Hallo weis jemand wo die Einstellung für das syntax-highlighting definiert ist? scheinbar ist bei C-Dateien ein 2-space-tab Ersetzen definiert...also wenn ich Tab in einer C-Datei drücke werden 2 Leerzeichen eingefügt. die globalen Einstellungen sind schon auf Tab und 8 spaces pro tab, wird aber ignoriert. Gruß Frank
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, das sollte eigentlich nichts miteinander zu tun haben. Der Syntax einer Programmiersprache hat nichts mit der Einrückung zu tun. Am besten nochmal in deine Einstellungen schauen. Und die meinst doch, wenn du selber Code schreibst? Wenn du eine bestehende Datei öffnest werden natürlich die in der Datei verwendeten Einrückungen genommen, zumindest bei dem bestehenden Code. Gruß, noisefloor
|
frank-w
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 419
|
naja, es gibt schon sprachen,wo die konvertierung von tabs2spaces Sinn macht (python z.b.), aber bei C sollte es es schon bei tab bleiben.
wenn ich eine C-Datei öffne (aus dem u-boot-quellcode) und drücke darin tab, werden 2 spaces eingefügt...stelle ich die Syntax auf plain-text ein, bekomme ich tabs. viel zum Einstellen gibt es da scheinbar nicht, denn ich habe es bereits auf "Tabulatoren" (statt "Leerzeichen") und bei Leerzeichen pro Tabulator ist 8 ausgewählt.
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6518
Wohnort: Hamburg
|
naja, es gibt schon sprachen,wo die konvertierung von tabs2spaces Sinn macht (python z.b.), aber bei C sollte es es schon bei tab bleiben.
Kann ja sein, aber das ist nicht unbedingt Aufgabe des Editors. Zumal jeder Programmierer da seine eigene Ansicht darüber hat, wie einzurücken ist. Ich habe da oft 2, 4 oder 8 Spaces gesehen. Ich bevorzuge 4. Aber davon abgesehen, sollte man das in jeden ordentlichen Editor einstellen können. Was aber nicht bedeutet, dass vorhandene Einrückungen, die mit Leerzeichen gemacht wurden, automatisch in den persönlichen Stil konvertiert werden können. Ich verwende Geany und vermeide das TAB Zeichen (Eingabe wird vom Editor in Leerzeichen umgesetzt). Ich erinnere mich, dass es in der Steinzeit der Mikrocomputer (auf Z80) Programme wie entab und detab gab, mit denen man das anpassen konnte.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, @frank-w: du hast die Frage nicht beantwortet... Codest du selber oder willst du in einer bestehenden Datei Leerzeichen durch Tabs (oder umgekehrt) ersetzen? Das sind zwei verschiedene Sachen...
denn ich habe es bereits auf "Tabulatoren" (statt "Leerzeichen") und bei Leerzeichen pro Tabulator ist 8 ausgewählt.
Das steht doch im Widerspruch... wenn du Tabulatoren willst brauchst du die andere Einstellung nicht.
es gibt schon sprachen,wo die konvertierung von tabs2spaces Sinn macht (python z.b.)
In erster Instanz verlangt Python eine _konsistente_ Einrückung, also keinen Mix. Aber ja, Empfehlung der PEP8 sind Einrückungen mit 4 Leerzeichen pro Ebene. Aber nochmal: das macht Gedit (und AFAIK auch kein anderer Editor) automatisch und erst recht nicht via Syntaxhighlighting. Gruß, noisefloor
|
frank-w
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 419
|
ich möchte in einer vorhandenen Datei einfach weitercoden...in der der Datei sind Tabs als Einrückung drin, aber ich bekomme keine eigenen Tabs da rein (nur wenn ich die von woanders kopiere), da immer nur 2 Leerzeichen eingefügt werden..ich habe die Standard-Einstellung, hatte nur zum Test mal hin und wieder zurückgeändert. Hatte das Problem unter Ubuntu 22 nicht und wie gesagt, wenn ich auf die Syntax auf Text stelle (die gleiche Datei ist noch geöffnet) kann ich Tabs einfügen. Es scheint also an der Syntax-Einstellung (was ja normal nicht nur das reine Highlighting ist, sondern meist auch zusätzliche Sachen wie die Einrückung, Klammern-Matching, automatische Einrückung bei bestimmten keywords etc.) zu liegen. habe aber noch nicht herausfinden können, wo die Definitionen dazu liegen. Naja, Leerzeichen pro Tab ist nicht ganz widersprüchlich, da es auch als entsprechende Breite gerendet werden kann...also das Tab ein Tab bleibt, aber nur die Breite von z.b. 4 Leerzeichen einnimmt. Und ja ich weis, dass Python Spaces statt Tabs will...mir gehts aber um die Eingabe...und bei C will ich bei Tab auch ein Tab haben.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, ok... wenn du beim Druck auf die Tab-Taste ein Tab haben willst darfst du unter "Einstellungen → Editor" _nicht_ "Anstellen von Tabulatoren Leerzeichen einfügen" aktiviert haben. Mit "Tabulatorbreite" stellst du ein, wie du schon sagst, wie vielen Leerzeichen ein Tab entspricht. Die Einstellung ist AFAIK global aktiv und nicht vom Dokument bzw. der Syntaxhervorhebung abhängig. Jedenfalls kann ich bei mir nicht nachstellen, dass sich irgendwas ändert, wenn ich eine Datei öffne, wo definitiv Leerzeichen statt Tabs drin sind, Gedit aber auf Tabs steht. Um herauszufinden, ob man wirklich ein Tab hat (und nicht 2 oder 4 oder 8 Leerzeichen) kann man vor das erste Zeichen der eingerückten Zeile gehen und drückt 1x die Pfeil nach links Tasten. Springt der Cursor mehr als ein Zeichen nach links hat man Tabs, bei Leerzeichen springt der Cursor (logischerweise) zeichenweise. Oder du öffnest die Datei mit einem Hex-Editor. 09 ist ein Tab, 20 ein Leerzeichen. Gruß, noisefloor
|
frank-w
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 419
|
noisefloor schrieb: ok... wenn du beim Druck auf die Tab-Taste ein Tab haben willst darfst du unter "Einstellungen → Editor" _nicht_ "Anstellen von Tabulatoren Leerzeichen einfügen" aktiviert haben. Mit "Tabulatorbreite" stellst du ein, wie du schon sagst, wie vielen Leerzeichen ein Tab entspricht. Die Einstellung ist AFAIK global aktiv und nicht vom Dokument bzw. der Syntaxhervorhebung abhängig. Jedenfalls kann ich bei mir nicht nachstellen, dass sich irgendwas ändert, wenn ich eine Datei öffne, wo definitiv Leerzeichen statt Tabs drin sind, Gedit aber auf Tabs steht.
hast du auch ubuntu 24.4? diese Einstellung finde ich nämlich nicht... es gibt die Ansichtsoptionen, wo ich wie gesagt nur zwischen Tabulatoren (ausgewählt) und Leerzeichen (nicht) auswählen kann, die entsprechende Breite (8) und automatische Einrückung deaktiviert ist. Dann gibt es den "Burger-Button" (Menüsymbol) die allgemeinen Einstellungen...Hier gibt es "Dateieinstellungen übernehmen" und wenn ich das deaktiviere habe ich auch die normalen Tabs...scheinbar funktioniert die Erkennung der Einrückung nicht sauber... ansonsten habe ich bereits knapp 25 Jahre Programmiererfahrung mit diversen Editoren und ähnlich lange mit Linux (Debian Potato als erstes ☺ ), das erste Ubuntu dürfte 8.4 (hardy) gewesen sein. Mir gehts also mehr darum herauszufinden, _warum_ es so unlogisch ist, sprich, wo man das evtl. einstellen kann...aber ich werde vermutlich mal nen Bugreport schreiben...es wird auch ziemlich viel von gedit auf console geloggt (u.a. Gtk-Warnings), wenn man es darüber aufruft (gerade so C&P Aktionen). aktuell habe ich die relativ kleine timer-uclass.c aus dem u-boot-repo auf und selbst da ist der Fehöler nachstellbar, dort ist eigentlich alles mit Tab eingerückt...ich sehe nur eine Einrückung mit zusätzlich leerzeichen (Anpassung an Klammern bei mehrzeiliger Bedingung - Styleguide) wo ich vermute, dass daher die falsche Leerzeichenerkennung kommt | if (ofnode_valid(node) &&
uclass_get_device_by_ofnode(UCLASS_TIMER, node, &dev)) {
|
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 9785
Wohnort: Münster
|
Hast Du wirklich gedit? Das Programm ist jedenfalls bei 24.04 nicht mehr der Standard für den Texteditor.
|
frank-w
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 419
|
guter Einwand...es wird zwar mit "gedit" gestartet (offensichtlich hat es sich den alternatives-link mit gesetzt), ist aber scheinbar der gnome-text-editor lt. "Über"-Seite $ sudo update-alternatives --query gedit
Name: gedit
Link: /usr/bin/gedit
Status: auto
Best: /usr/bin/gnome-text-editor
Value: /usr/bin/gnome-text-editor das würde den unreifen Zustand im Vergleich zu Ubuntu 22 erklären also mal das richtige gedit nachinstalliert, Thema und Schriftgröße (weise Leiste für Zeilennummern im Dark-Theme und Schriftgröße 12 nicht gut ☺ ) und tab funktioniert in der Standardeinstellung mit der gleichen Datei ohne Probleme...wird mit gedit gestartet, aber der alternatives-Eintrag ist unverändert :p ist aber kein link mehr...also alternatives zeigt falsch an $ which gedit
/usr/bin/gedit
$ ls -l /usr/bin/gedit
-rwxr-xr-x 1 root root 14640 Jan 23 22:13 /usr/bin/gedit
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo,
das würde den unreifen Zustand im Vergleich zu Ubuntu 22 erklären
Es gibt kein Ubuntu 22... Es gibt Ubuntu Core 22, Ubuntu 22.04 und Ubuntu 22.10... Aber du hast ja auch nicht den Editor genutzt, von dem du dachtest, ihn zu nutzen *SCNR* Abgesehen davon: Gnome Text Editor ist der neue Standard des GNOME Projekts, und zwar seit GNOME 42 (=März 2022). In Ubuntu ist der GNOME Text Editor erstmals seit 23.10 der Defaulteditor. "unausgereift" würde ich GNOME Text Editor auch nicht nennen... Das Programm kann so wenig (und noch weniger als Gedit), dass da eigentlich nix zum Reifen ist. Wie schon vor X Posts gesagt wurde: wenn man ein bisschen mehr Komfort möchte weder gedit oder GNOME Text Editor nehmen, sondern z.B. Geany. Gruß, noisefloor
|
frank-w
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 419
|
für den Komfort habe ich vscode 😉 für kleine Sachen ist mir der aber zu träge bzw. müsste bestimmte Sachen (z.B. Tastenkürzel) erst einrichten, was ich unter ubuntu 24.4 noch nicht gemacht habe (installiert ist er schon)... und ja, meinte natürlich ubuntu 22.4, das mit dem Funktionsumfang ist mir aufgefallen, dass der noch weniger kann als Gedit vorher, hätte nur nicht gedacht, dass das ein anderer Editor ist, der sich /usr/bin/gedit krallt...editor hätte ich noch verstanden...
|