Forum: www.mikrocontroller.net Tabs durch Leerzeichen ersetzen


von Sam .. (sam1994)


Lesenswert?

Könnte man nicht bei neuen Beiträgen automatisch alle Tabs in 
Codefragmenten durch z.B. 4 Leerzeichen ersetzen? Dann müsste man nicht 
immer, alle Tabs durch Leerzeichen ersetzen, bzw. der Code von Leuten 
welche das nicht machen, wäre leserlich.

von Hannes L. (hannes)


Lesenswert?

Samuel K. schrieb:
> Könnte man nicht bei neuen Beiträgen automatisch alle Tabs in
> Codefragmenten durch z.B. 4 Leerzeichen ersetzen?

Das würde nicht aufgehen, weil ein H-Tab nicht eine bestimmte Anzahl 
Leerzeichen ersetzt, sondern die nächste freie Ausgabe-Position im 
aktuell eingestellten TAB-Raster des Textbetrachters bzw. Druckers 
auswählt.

> Dann müsste man nicht
> immer, alle Tabs durch Leerzeichen ersetzen,

Die GUIs sollten das können. In AVR-Studio kann man einstellen, dass die 
Tabs durch Leerzeichen ersetzt werden. So formatierte Quelltexte lassen 
sich mit jedem Textbetrachter vernünftig lesen. Und wenn man darauf 
achtet, dass die Zeilen nicht zu lang werden, dann lassen sich 
Quelltext-Auszüge auch vernünftig drucken.

> bzw. der Code von Leuten
> welche das nicht machen, wäre leserlich.

Eben. Wer seine Quelltexte auch außerhalb seiner GUI vernünftig 
formatiert angezeigt wissen will, der stellt die Editor-Optionen 
entsprechend ein.

...

von Sam .. (sam1994)


Lesenswert?

Hannes Lux schrieb:
> Das würde nicht aufgehen, weil ein H-Tab nicht eine bestimmte Anzahl
> Leerzeichen ersetzt, sondern die nächste freie Ausgabe-Position im
> aktuell eingestellten TAB-Raster des Textbetrachters bzw. Druckers
> auswählt.

Mag sein, aber im Browser kann man sowieso keine Tabs schreiben und in 
Quelltexten kommen Tabs auch nur zur Einrückung vor. Also kann es ja 
nicht schaden.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Die Leserlichkeit würde das nicht erhöhen bei dem Wildwuchs, den man so 
sieht. Und ohne [code]-Tags bringt das eh nix.

Wenn jemand Monster-Code postet, ist er selber schuld, wenn niemand 
darauf antwortet.

von Sam .. (sam1994)


Lesenswert?

Hackt doch jetzt nicht darauf herum. Ich sehe in der Funktion nur 
Vorteile.
Hannes Lux schrieb:
> Eben. Wer seine Quelltexte auch außerhalb seiner GUI vernünftig
> formatiert angezeigt wissen will, der stellt die Editor-Optionen
> entsprechend ein.
Es gibt viele Editoren ohne diese Funktion.

Johann L. schrieb:
> Wenn jemand Monster-Code postet, ist er selber schuld, wenn niemand
> darauf antwortet.
Wenn der Code nun aber leserlich wird, könnte auf den Thread geantwortet 
werden und dadurch wird dieser sich evtl. für Dritte später als nützlich 
erweisen. Ein antowrtloser Thread dagegen ist nutzlos.

Die Funktion dürfte nicht schwer einzubauen zu sein: Die 
Codeformatierungfunktion kann beim Quelltext durchsuchen gleich die Tabs 
mitersetzen.

von Hannes L. (hannes)


Lesenswert?

Samuel K. schrieb:
> Es gibt viele Editoren ohne diese Funktion.

Muss man sie benutzen?

Meine ersten Programme waren auch beschissen formatiert, wenn man sie 
außerhalb AVR-Studio betrachtet. Es hat einige Zeit gedauert, bis ich 
den Schalter zum Ersetzen der Tabs durch Spaces gefunden habe.

Samuel K. schrieb:
> Hackt doch jetzt nicht darauf herum.

Wer hackt den hier darauf herum? Das bist doch wohl eher Du...

> Ich sehe in der Funktion nur
> Vorteile.

Die sehe ich nicht. Als Autor eines Quelltextes möchte ich selbst 
bestimmen, wie er formatiert wird. Da möchte ich keinen Automaten dran 
rumfummeln lassen. Denn meist wird da mehr Schaden als Nutzen gemacht.

Johann L hat schon recht, wer zu faul oder zu blöd ist, seinen Quelltext 
halbwegs lesbar zu formatieren, der muss sich nicht wundern, wenn die 
Hilfe ausbleibt.

...

von Sam .. (sam1994)


Lesenswert?

Hannes Lux schrieb:
> Die sehe ich nicht. Als Autor eines Quelltextes möchte ich selbst
> bestimmen, wie er formatiert wird. Da möchte ich keinen Automaten dran
> rumfummeln lassen. Denn meist wird da mehr Schaden als Nutzen gemacht.

a) Du hast keine Tabs in deinem Quelltext
   -> Dann wird dein Text nicht verändert
b) Es sind Tabs darin enthalten
   -> Dann würden sie ihn sowieso unleserlich machen, also macht das 
Ersetzen nichts.
c) Man könnte so etwas wie [codet] einführen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Samuel K. schrieb:
> c) Man könnte so etwas wie [codet] einführen.

Besser: Erweitert mit der Tab-Angabe.
[code_t=2] oder [code_t=8] ...

von Falk B. (falk)


Lesenswert?

@  Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite

>Besser: Erweitert mit der Tab-Angabe.
>[code_t=2] oder [code_t=8] ...

IMO zu viel Schnick Schnack. Ein sinnvoller Hinweis in einem Artikel 
(Netiquette?) auf das Problem und wie man es ausserhalb der 
Forensoftware löst ist IMO besser.

MFG
Falk

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> IMO zu viel Schnick Schnack.

D'accord.

Mein Beitrag bezog sich nur darauf, daß falls der Schnick 
"Tab-Unterstützung" eingeführt werden sollte (was ich bezweifle, Andreas 
hat gewiss sinnvolleres zu tun), dann auch der Schnack "konfigurierbare 
Tab-Weite" nötig ist.

von Karl H. (kbuchegg)


Lesenswert?

Samuel K. schrieb:
> Hackt doch jetzt nicht darauf herum. Ich sehe in der Funktion nur
> Vorteile.
> Hannes Lux schrieb:
>> Eben. Wer seine Quelltexte auch außerhalb seiner GUI vernünftig
>> formatiert angezeigt wissen will, der stellt die Editor-Optionen
>> entsprechend ein.
> Es gibt viele Editoren ohne diese Funktion.

Dann bin ich verwöhnt.
Bis jetzt hatte noch jeder Programm-Editor eine Funktion "Tab durch 
Spaces ersetzen". Das ist mir deswegen soi geläufig, weil ich sie bei 
einem neuen Editor immer als allererstes einschalte (gleich nach dem 
Abschalten der automatischen Einrückung)

Eine automatische Ersetzung fände ich trotzdem gut. Nur wird es leider 
nix bringen. Wie Falk und Rufus schon sagten: Wer auf seine 
Codeformatierung achtet, hat Tabs sowieso schon ersetzt. Und wer sich 
der Tab-Problematik nicht bewusst ist, bei dem wird es immer beschissen 
aussehen. Wenn Tab erhalten bleiben, hat man eventuell noch die Chance 
durch experimentelles ausprobieren die richtige Tab-größe 
herauszufinden. Aber ehrlich: wenn Code durch Tab höllisch entstellt 
ist, sinkt bei mir die Bereitschaft zur Code-Analyse rasend schnell in 
den Keller.

von MaWin (Gast)


Lesenswert?

> alle Tabs in Codefragmenten durch z.B. 4 Leerzeichen ersetzen

Ein TAB war schon immer ein Vorrücken auf die nächste 8er Position.

4 wäre blöd.

von Daniel F. (df311)


Lesenswert?

hmm, ich dagegen hasse code, der mit leerzeichen eingerückt ist - ich 
bevorzuge tabs. unter anderem auch deshalb, weil ich damit einfach ganze 
blöcke mit einem tastendruck (bzw. zwei) um eine ebene ein- bzw. zurück 
rücken kann wenn z.b. ein if dazukommt oder wegfällt.

gerade bei einrückung tabs/leerzeichen und der zurgeöhrigen schrittweite 
gilt ganz besonders "suum cuique", das wird man nie allen recht machen 
können... (ausser vielleicht in fortran und anderen sprachen mit fix 
vorgegebenen formatierungsvorgaben)

von MaWin (Gast)


Lesenswert?

> weil ich damit einfach ganze
> blöcke mit einem tastendruck (bzw. zwei) um eine ebene ein- bzw. zurück
> rücken kann wenn z.b. ein if dazukommt oder wegfällt.

Kaum.

Wenn das dein Editor macht und kann,
dann nur, weil er IN JEDER ZEILE ein Zeichen löscht bzw. einfügt.
Dann kann er auch 4 Zeichen löschen bzw. einfügen, nämlich Leerzeichen.

Dazu braucht man also keine TABs. q.e.d.

von Auch Tabs sind wichtig (Gast)


Lesenswert?

MaWin schrieb:
> Kaum.
>
> Wenn das dein Editor macht und kann,
> dann nur, weil er IN JEDER ZEILE ein Zeichen löscht bzw. einfügt.
> Dann kann er auch 4 Zeichen löschen bzw. einfügen, nämlich Leerzeichen.

Hast Du auch schon mal mit Backspace gearbeitet? Man muss auch mal in 
die andere Richtung denken. Also ich lösche nicht gern jedes Zeichen 
einzeln. Ein Editor, der gleich n-Zeichen löscht ist recht unbrauchbar. 
Gibt es auch, aber da muss man oft erst wieder in die andere Richtung 
mit Leerzeichen auffüllen (wie beim Tab).

Da ich aber auch manchmal mit wenig intelligenten Editoren arbeite (und 
nicht jeder andere Benutzer meines Codes hat meine 2-Tab) - nehme auch 
ich Leerzeichen.

von MaWin (Gast)


Lesenswert?

Mit solchen Editoren kannst du aber nicht

"ganze blöcke mit einem tastendruck (bzw. zwei)
um eine ebene ein- bzw. zurück rücken"

WENN du also nächsten mal ein ABER in die Diskussion
einwirfst, prüfe vorher ob dein Beitrag überhaupt
zu dem passt, was die Erwachsenen vorher gesagt haben.

von Klaus (Gast)


Lesenswert?

MaWin schrieb:
> Mit solchen Editoren kannst du aber nicht
>
> "ganze blöcke mit einem tastendruck (bzw. zwei)
> um eine ebene ein- bzw. zurück rücken"

Natürlich kann man. Was redest du da? Funktioniert genau so, wie mit 
Tabs auch. Nur das halt x Leerzeichen anstelle von einem Tab eingefügt 
werden.

von MaWin (Gast)


Lesenswert?

Wer ist denn jetzt "Klaus" ?

Der dritte Name von "Auch Tabs sind wichtig" und "Daniel F"
oder warum glaubt er zu wissen was Daniles Editor kann und
Auch Tabs sind wichtig Editor nicht kann?

Mann Leute, entweder ihr leidet unter gespaltener Persönlichkeit
und kommt mit euren dutzenden Nick-Names durcheinadner,

oder ihr palavert ohne Hirn und Nachdenken.

Zusammenfassend:

Ein Editor, der ganze Blöcke einrücken/ausrücken kann, der kann
das egal ob die Blöcke mit Tabs oder Leerzeichen erstellt wurden.

Ein Edior, der nicht auf Tastendruck ganze Blöcke einrücken
oder ausrücken kann, bei dem hilft es auch nichts, wenn die
Blöcke mit Tabs statt Leerzeichen erstellt wurden.

von Simon B. (nomis)


Lesenswert?

Und denkt dran:

Wenn ihr mit Tabs einrückt dann stellt sicher, dass Zeilen die 
zwischendurch mal umbrochen werden und in denen der Lesbarkeit halber 
Elemente untereinander ausgerichtet werden sollen nur genau die Anzahl 
von Tabs bekommen, die ihrer syntaktischen Schachtelung entsprechen und 
der Rest dann mit Spaces aufgefüllt wird. Ansonsten geht bei einer 
unterschiedlichen Tab-Größe jede Ausrichtung kaputt.

Also so: (mit Punkten statt Spaces)
1
<tab>if (condition1 &&
2
<tab>....condition2) {
3
<tab><tab>dosomething (argument1,
4
<tab><tab>.............argument2);
5
<tab>}

Viele Grüße,
        Simon

von Nico S. (nico22)


Lesenswert?

Simon Budig schrieb:
> Wenn ihr mit Tabs einrückt dann stellt sicher, dass [...]
> Elemente [, die] untereinander ausgerichtet werden sollen nur genau die Anzahl
> von Tabs bekommen, die ihrer syntaktischen Schachtelung entsprechen und
> der Rest dann mit Spaces aufgefüllt wird.

Genau mit diesem Trick lässt sich mit Tabs sinnvoll arbeiten - ich 
persönlich bevorzuge Tabs, das soll jetzt aber keine Diskussion 
losbrechen.

Zum Thema: Ich habe mal ein PHP-Script geschrieben, welches Tabs 
automatisch durch Leerzeichen ersetzt, sodass immer bis zur nächsten 
Ausgabeposition geschoben wird. Habe das damals für ein 
Mini-GIT-Frontend benötigt. Auch wenn das Forum in Ruby geschrieben ist, 
wäre ich bei Interesse bereit, Andreas den Code zur Verfügung zu 
stellen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.