Meillo hat geschrieben: 20.12.2021 12:33:42
Der etwas seltsame Begriff ``second level indents'' meint umgebrochene, zu lange Zeilen.
Ach, das war eigentlich schon das Missverständnis!
In die Richtung habe ich gar nicht gedacht.
Meillo hat geschrieben:
Meine Frage an dich: Wie soll der vi fuer dich entscheiden, ob eine Zeile ein naechstes Statement oder ein umgebrochenes fortgesetztes Statement ist?
Für mich war die Frage ja eher, wie die erste von der zweiten Einrückungsstufe unterschieden werden kann. Aber gehen wir als Denkexperiment mal in diese Richtung.
Meillo hat geschrieben:
Ich wuerde sagen, das kann er nur durch Syntaxanalyse, wozu er die Grammatik der Sprache beherrschen muesste. Damit wirst du keine automatische Unterstuetzung bekommen (ausser du verwendest irgendwelche wilden Vim-Plugins, die es vermutlich gibt).
Beim K&R-Style ist da in der Regel öffnende geschweifte Klammern oder ein Semikolon am Ende. Das wäre mal eine ganz grobe Faustregel, sicherlich nicht ausreichend...
Meillo hat geschrieben:
Die Einrueckung mit Tabs machst du manuell oder mit `:set ai'. Wenn du eine Zeile umbrichst, dann tippst du zudem vier Spaces ein. Dieser Fall sollte nur selten vorkommen, naemlich nur wenn du Code umbrechen musst. (Falls das zu oft passiert, dann solltest du an deinem Style arbeiten: weniger tief verschachteln und kuerzere Bezeichner.)
Und plötzlich ergibt das ganze einen Sinn! Mit dieser Plackerei will man die Leute davon abhalten lange Zeilen zu schreiben, die dann einen Umbruch verlangen! Hätte ich doch das originale Zitat nicht gekürzt, denn es lautet folgendermassen:
Indentation is an 8 character tab. Second level indents are four spaces. All code should fit in 80 columns.
Code: Alles auswählen
while (cnt < 20)
z = a + really + long + statement + that + needs +
two + lines + gets + indented + four + spaces +
on + the + second + and + subsequent + lines;
Nicht mal beim Anblick des Codebeispiels bin ich darauf gekommen, dass es um umgebrochene, fortgesetzte Statements ging.
Meillo hat geschrieben:
Ich glaube, du hast missverstanden, was ``second level indent'' bedeutet (das ist IMO auch ein verwirrender Begriff, der durch ``indent of wrapped lines'' oder so ersetzt werden sollte).
Wie schon oben erwähnt, ist genau das Problem. Vielleicht sollte ich den Begriff mal in der entsprechenden Mailingliste ansprechen und auf diesen Thread hier verweisen. Aber "Debianforum" werden die wohl gleich rausfiltern
Meillo hat geschrieben:
Im vi musst du fuer diesen Stil gar nichts konfigurieren, weil seine Defaulteinstellungen schon passend dafuer sind.
Einzig ueber `ai' kannst du nachdenken, wenn du das angenehm findest.
Autoindent habe ich immer aktiv, das hilft mir.
@rodney: Danke für den Plugin-Hinweis! Werde ich wohl nicht benötigen, aber wenn...