Hallo, ich benutze gerade Geany zum erstellen eines kleinen Python-Programmes. Da man zum Einrücken ja Leerzeichen statt Tabulatoren verwenden soll, habe ich das auch so unter Bearbeiten->Einstellungen->Editor und dann unter dem Reiter "Einrückung" so eingestellt. Leider werden mit Druck auf die Tabulator-Taste weiterhin Tabulatoren zum Einrücken verwendet. Weiß jemand, woran das liegt? Danke!
Geany - Einrückung einstellen
|
Anmeldungsdatum: Beiträge: 384 |
|
|
Anmeldungsdatum: Beiträge: 1779 |
Arubeto schrieb:
Das ist in Python vollkommen egal - hauptsache, du machst es einheitlich. Kannst also ruhig auf Tabulatoren stehen lassen. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 384 |
Ja, aber PEP(8) empfiehlt Leerzeichen statt Tabulatoren. Und wenn man es schon weiß, kann man sich ja auch dran halten... |
|
Anmeldungsdatum: Beiträge: 1820 Wohnort: Hamburg |
Das selbe Problem habe ich auch it einer aktuellen Version von Geany. Bearbeiten → Einstellungen → Einrückungen → Einrückung → Breite: 4 / Typ: Leerzeichen Das alleine genügt aber schienbar noch nicht... ... zumindest nicht bei bereits angelegten Dateien. Bei neu in Geany erstellten Dateien funktioniert es wie gewünscht. Um auch die alten Dateien anzupassen hilft folgendes: Projekt → Standardeinrückung anwenden |
|
Anmeldungsdatum: Beiträge: 2669 Wohnort: Hamburg |
Im übrigen sollte man Tabulatoren *niemals nie* in *keiner* Sprache verwenden - Quellcode sollte stets unabhängig von der Umgebung einheitlich formatiert darstellbar sein. |
|
Anmeldungsdatum: Beiträge: 11 |
Das ist der größte Unfug den ich zu dem Thema jemals gelesen habe! Tabulatoren werden in jedem gewöhnlichen Textbearbeitungsprogramm Programm-einheitlich eingerückt, die Einrückungsbreite mag sich zwar von Programm zu Programm unterscheiden, aber ist auch oft einstellbar, was Tabulatoren komfortabler macht, da man seine Einrückungsbreite selbst wählen kann. So werden auch Inkompatibilitäten vermieden zwischen Leuten die gerne 2, 4 oder 8 Leerzeichen zum Einrücken benutzen, bei Leuten die Tabulatoren benutzen ist das alles nur 1 Tabulator. Zudem verbrauchen Tabulatoren daher weniger Speicherplatz, da ein Tabulator nur 1 Byte hat, aber wenn man vier Leerzeichen tippt sind das schon 4 Bytes und das summiert sich natürlich vielfach über die Anzahl der Zeilen. Meine Empfehlung wäre daher ganz klar überall einheitlich Tabulatoren zu verwenden! |
|
Anmeldungsdatum: Beiträge: 13812 |
Dann rechne mal nach, wieviel Byte Du für Deinen Post zur Exhumierung dieses Threads, zu dem Du Dich extra zu registrieren bemüßigt gefühlt hast, verbraucht hast und weiter verbrauchst!
Keine Empfehlung, sondern eine Regel ist, einen Aussagesatz mit einem Satzpunkt zu beenden. |
|
Anmeldungsdatum: Beiträge: 11 |
3 zusätzliche Bytes sind bei 1000 Programmzeilen schon 3000 Bytes, also wenn man alle Zeilen von Leuten zusammenrechnet die dem falsch begründetem Rat hier gefolgt sind Leerzeichen zu benutzen, dann müßte ich einiges tippen um das aufzuholen. Und ja der Thread war alt aber tauchte trotzdem weit oben in meiner Suche auf und erschien mir daher noch aktuell genug als daß er nicht mit einer fehlerhaften Aussage und Empfehlung beendet sein sollte!
Meta Diskussionen sind kontraproduktiv! |
|
Anmeldungsdatum: Beiträge: 329 |
du weißt aber schon dass es heute viele Möglichkeiten zur komprimierten Speicherung gibt? Und dass sich sukzessive Leerzeichen super komprimieren lassen? Speicherplatz ist jetzt wirklich ein schwaches Argument, wenns um Plaintextformate geht. |
|
Anmeldungsdatum: Beiträge: 11 |
Das mag für das archivieren stimmen, aber niemand arbeitet auf einem Archiv, wenn er den Quelltext bearbeitet, meist liegt dieser doch auch immer unkomprimiert vor. Und außerdem läßt sich ein Tabulator trotzdem besser komprimieren als viele Leerzeichen. Damals hat man sogar extra Großbuchstaben verwendet anstelle von Kleinbuchstaben, weil diese im ASCII Code weiter vorne stehen und sich daher leichter komprimieren ließen, deswegen sind Dateinamen im FAT Dateisystem immer groß geschrieben gewesen. Und der Speicherplatz war ja nur eines meiner Argumente gewesen, das größere Problem ist daß Leute nicht einheitlich einrücken und manche bevorzugen 1, 2 oder 4 Leerzeichen, etc. wenn man mit Tabulator formatiert ist die persönliche Breite in der IDE einstellbar ohne dass man den Quelltext verändern muß! Zugegeben wie weiter oben geschrieben empfiehlt die PEP8 Leerzeichen, aber ich finde das ist eine schlechte Empfehlung aufgrund der genannten Argumente. |
|
Anmeldungsdatum: Beiträge: 6572 Wohnort: Hamburg |
Genau das ist der Grund, warum das Tabulator Zeichen in Quelltexten tabu sein sollte. Ich pfeife auf die angeblich verschwendeten Bytes. Ich habe schon genug fremde Quältexte neu formatieren müssen, um die Struktur erkennbar zu machen. Das schlimmste ist, wenn TABs und Leerzeichen gemischt werden. |
|
Anmeldungsdatum: Beiträge: 11 |
Das Argument verstehe ich nicht, wenn der Quelltext mit einer anderen Einrückungsbreite formatiert ist ist das doch viel nerviger und wenn Tabulatoren und Leerzeichen gemischt sind beschwert sich ohnehin der python-compiler.. Deswegen wenn man ein fremdes Dokument in Geany öffnet einfach einmal Menü->Dokument->Leerzeichen durch Tabulatoren ersetzen.. Und schon ist alles einheitlich. Gerade mal mit einem 600 Zeilen Quelltext getestet, selbe Datei, selber komprimierter Dateiname, Tabulator vs 4 Leerzeichen: Unkomprimiert 23279 vs 27668 Bytes und gzip-komprimiert 6505 vs 6701 Bytes. Und das war nur ein kleines Programm, das summiert sich schnell. |
|
Anmeldungsdatum: Beiträge: 329 |
Guten Morgen. Die 1990er haben angerufen ... ich spreche nicht von Archiven, sondern von Dateisystemen. Sogar NTFS kann transparent komprimieren, wenn der Platz knapp ist. Und wenn der Platz nicht knapp ist, sind die paar Bytes wirklich nicht der Rede wert. Auch Netzwerkprotokolle komprimieren heute transparent, also Up- und Download kann jetzt auch nicht der Faktor sein. Da du dich aber offenbar auf der Mission befindest, die IT-Welt zum Tabulatur zu bekehren, und dich extra für dieses Evangelium hier anmeldest, wünsche ich noch viel Erfolg. Nutz Tabulatoren, so oft du willst, und wenn jemand damit nicht klar kommt, kann ers dir sagen. |
|
Anmeldungsdatum: Beiträge: 11 |
Wesentlich besser als gzip sind diese transparenten Kompressionen nicht und wie man sieht macht das selbst bei kleinen Programmen trotzdem 200 Bytes. Die ganzen großen python Projekte würden locker mehrere dutzend Mebibytes sparen wenn sie einheitlich mit Tabulator formatieren würden, nur weil wir nicht mehr in den 90ern sind heißt das nicht, daß Datenvolumen und Speicher auf Bäumen wachsen.
Ich habe früher in QBASIC und BATCH selbst immer 1 Leerzeichen zum einrücken verwendet, weil Tabulator standardmäßig in DOS als 8 Leerzeichen angezeigt wurde und mir das übertrieben erschien. Das Problem ist überhaupt erst entstanden weil Leute meinten für eine einzelne Einrückung mehrere Leerzeichen zu verwenden. Tabulatoren scheinen mir da ein guter Kompromiss zu sein, ein Zeichen, eine Einrückung aber trotzdem variable Breite in modernen Editoren. |
|
Anmeldungsdatum: Beiträge: 2147 Wohnort: Gelsenkirchen |
Dir ist aber schon klar, dass Einrücken mit einem Leerzeichen auch einen Zeilenumbruch (also \n oder gar \r\n) voraussetzt? Dann doch lieber Semikolons (bzw. Doppelpunkte in BASIC), damit die komplette Funktion in eine Zeile passt (okay, in BASIC war das tatsächlich üblich, zumindest einige Befehle in einer Zeile zusammenzufassen). Und warum überhaupt Funktionen? Der komplette Quelltext in einer einzelnen Datei ohne weitere Strukturierung tut es doch auch und spart jede Menge wertvollen Speicher ein. Selbstverständlich verwende ich dabei möglichst wenig Variablen, denn komplexe Zwischenschritte schreibt man doch am besten direkt hin. Wenn ich mal welche brauche, bestehen sie natürlich nur aus einem Zeichen. Ebenso unnötig sind diese höheren Programmiersprachen und ihre Bibliotheken. Die verbrauchen nur zusätzlichen Platz auf meinem Rechner UND verwenden womöglich Leerzeichen statt Tabs. Da schreib ich doch lieber alles in Assembler. ☺
Jetzt mal ernsthaft: Die Diskussion, ob Tabs oder Leerzeichen, wurde schon tausendfach geführt. Wenn dir Tabs lieber sind, dann benutze sie doch einfach. Aber ungefragt mit der o. g. Aussage einen Vortrag in einem Thread von 2009 zu halten, ist - freundlich ausgedrückt - schon etwas merkwürdig. Und außerdem sprechen wir von Quelltext. So ziemlich jede Programmiersprache bringt den Code in eine wie auch immer kompilierte "interne" Form, bevor er ausgeführt wird. Da ist es völlig egal, ob Leerzeichen oder Tabs verwendet wurden, da der Quelltext für den Anwender in der Regel gar nicht ausgeliefert wird und im Zielformat die spezifischen Trennzeichen ohnehin nicht übernommen werden. Einzig der kosmetische Aspekt, den du angesprochen hattest, kann diskutiert werden. |