Richten Sie die Spalten in Sublime Text 3 rechts aus

1281
Richard Herron

Ich möchte Text in Spalten in Sublime Text 3 (unter Win 8.1, FWIW) nach rechts ausrichten.

Das heißt, ich möchte das konvertieren

Time Cash Flow 0 -500 1 100 2 200 3 300 

das sehr gut finden

 Time Cash Flow 0 -500 1 100 2 200 3 300 

mit dem ultimativen Ziel davon

 Time Cash Flow ----- ---------- 0 -500 1 100 2 200 3 300 

Dies ist eine einfache Tabelle in Pandoc . Ich habe die Pakete alignmentund ausprobiert AlignTab, aber diese scheinen sich darauf zu konzentrieren, einige Begrenzungszeichen auszurichten, anstatt die Spalten nach Bedarf auszurichten.

Gibt es einen Trick, um das zu tun? Ich bin auch offen für eine Lösung, die vi oder Excel erfordert.

2
Hast du meine Antwort gesehen? Es sollte sehr leicht sein, es so anzupassen, dass der spezifische Anwendungsfall, den Sie in Ihre Frage eingeführt haben, gelöst wird. Mein Beispiel hat Ihren Anwendungsfall etwas erweitert, um die volle Leistungsfähigkeit dieses Ansatzes zu demonstrieren. Sie können leicht den ganzen Wald wegen all der vielen Bäume "verlieren" * * daher ... Kurt Pfeifle vor 8 Jahren 1

2 Antworten auf die Frage

1
Kurt Pfeifle

Ok, hier ist eine Lösung, die Excel oder ein anderes Tabellenkalkulationsprogramm beinhaltet, das CVS exportieren kann.


Sie müssen einen neu veröffentlichten Drittanbieterfilter mit dem Namen "csv2table" (<- GitHub-Repository) für Pandoc installieren .

Es ist auch als Standalone-Filter erhältlich .

  1. Installieren Sie den eigenständigen Filter wie folgt:

    mkdir $/bin  wget https://gist.githubusercontent.com/baig/b69e3146251bd90d12e7/raw/d8c8171fbe0ad5543f8aaf0a134250b29c689e57/csv2table.hs \ -O $/bin/pandoc-csv2table.hs  chmod a+x $/bin/pandoc-csv2table.hs  export PATH=$/bin:$ 
  2. Meine bevorzugte Installationsmethode ist jedoch über cabal:

    cabal update export PATH=$/.cabal/bin:$ cabal install cabal-install cabal install pandoc-csv2table 

Lesen Sie die csv2table-Dokumentation .

Was kann man mit diesem Filter machen?

  1. Sie können eine externe CSV-Datei in Ihren Markdown einfügen, indem Sie ...

    • ... entweder das Bild mit der folgenden Syntax missbrauchen :

      ![](/path/to/file.csv)

    • ... oder indem Sie die eingezäunte Codeblock- Syntax wie folgt missbrauchen :

      ```` {.table source="/path/to/file.csv" <list-of-attributes>} ```` 
    • ... oder durch direktes Einfügen Ihrer CSV-Zeilen in den Abschnitt "Eingezäunte Tabellen":

      ```` {.table <list-of-attributes>} one,two,three 1,2,3 100,2000,55555 ```` 
  2. Durch Aufrufen des Filters in der Pandoc-Befehlszeile wird
    --filter=pandoc-csv2table
    CSV in allen Ihren Ausgabeformaten in eine Tabelle konvertiert.

  3. Außerdem können Sie nahezu alle Formatierungen auf die von Pandoc unterstützten Tabellen anwenden:

    • Verwenden Sie das Attribut type="multiline", um eine zu erstellen multiline_table.
    • Verwenden Sie type="pipe"zum Erstellen eines pipe_table.
    • Verwenden Sie type="simple"zum Erstellen eines simple_table.
    • Verwenden Sie caption="My ***important*** caption for this table"diese Option, um eine Tabellenüberschrift hinzuzufügen. (Dies kann die Markdown-Formatierung umfassen.)
    • Verwenden header="no"Sie diese Option, wenn Sie eine Tabelle ohne Spaltenüberschriften wünschen (Standardwert, falls nicht angegeben, ist header="yes").
    • Nun die gewünschte Funktion: Verwenden Siealigns=LRCDR, um die Ausrichtung der Spalten (von links nach rechts) wieder nach links, rechts, zentriert, Standard und rechts zu ordnen.

Beispiel

  1. Betrachten Sie diese my.csvDatei:

    Time,"*Cash* Flow","Third column" 0,-500,loooooooooooong data field with many words 1,*100*, ***2***,`2000`,shorte **3**,30000,(second line is empty)

    (Wie Sie sehen, verwende ich sogar Markdown-Markup für einige Datenfelder der CSV-Zeilen!)

  2. Betrachten Sie diesen Markdown my.md:

     # Überschrift  `` `{.table source =" ./ my.csv "aligns =" ​​LRCR "type =" multiline "caption =" Some *** caption *** "} `` `` 
  3. Führen Sie diesen Befehl aus, um aus Ihrer CSV-Eingabe eine Markdown-Ausgabe mit mehreren Zeilen zu generieren:

    pandoc my.md --filter = pandoc-csv2table -t markdown 

    Siehe diese Ausgabe:

    Screenshot of Markdown output

  4. Führen Sie diesen Befehl aus, um aus Ihrer CSV-Eingabe eine PDF-Ausgabe mit einer mehrzeiligen Tabelle zu generieren:

    pandoc my.md --filter = pandoc-csv2table -o mein.pdf 

    Sehen Sie sich diese Ausgabe an (Screenshot):

    Screenshot of PDF output

  5. Wenn Sie "Pipe-Tabellen" mit der ausrichtungsanzeigenden Doppelpunkt-Syntax generieren möchten, müssen Sie den Markdown sowie die Befehlszeile ein wenig ändern:

    • Ändern Sie Markdown, um estype="pipe"in die Tabellenformatierungsoptionen aufzunehmen:

       # Überschrift  `` `` {.table source = "./ my.csv" aligns = "LRCR" type = "pipe" caption = "Some *** caption ***"} `` `` 
    • Ändern Sie die Befehlszeile, um diemarkdown_phpextra+table_captionsAusgabe abzufragen :

      pandoc my.md --filter = pandoc-csv2table -t markdown_phpextra + table_captions

      Sehen Sie die Ausgabe jetzt:

      Screenshot with <code>pipe_tables</code> output including alignment-"colons"

  6. Das funktioniert natürlich auch mit allen anderen Ausgabeformaten!

1
Richard Herron

Ich habe eine andere Lösung. Pandoc pipe_tableserfordert das folgende Format und kann linke, mittlere und rechte Ausrichtung verwenden.

| Right | Left | Default | Center | |------:|:-----|---------|:------:| | 12 | 12 | 12 | 12 | | 123 | 123 | 123 | 123 | | 1 | 1 | 1 | 1 |  : Demonstration of pipe table syntax. 

Wenn ich die Säulen mit Rohren trenne |, kann ich es, wenn ich fertig bin

  • Richten Sie zuerst die Pipes mit dem alignmentPaket in Sublime Text 3 aus
  • fügen Sie dann die Doppelpunkte manuell zurück :, um die gewünschte Ausrichtung zu erhalten.

Dies ist nicht ganz so einfach wie der von @ Kurt (und auch nicht annähernd so robust :)), aber es ist recht einfach.

Oh, ich habe deine Frage dann falsch verstanden. Ich dachte, Sie wollten eine einfache Möglichkeit, Ihre Textspalten in einem Texteditor *** zu bearbeiten, damit sie ausgerichtet sind. Ich dachte, Sie wissen schon über die verschiedenen Pandoc / Markdown-Tabellenformate Bescheid ... Meine Antwort zeigte, dass Sie *** nicht manuell in einem Editor formatieren müssen und dass Sie Pandoc dazu auffordern könnten Markdown-Tabellen aus CSV generieren. - Jedenfalls gibt es noch mehr Tricks, wenn Sie ** `man pandoc_markdown` ** lesen. Kurt Pfeifle vor 8 Jahren 0
Siehe auch meine aktualisierte Antwort. Ich fügte ein Beispiel hinzu, wie man eine `pipe_table` mit Ausrichtungspunkten erstellt. Kurt Pfeifle vor 8 Jahren 0
Übrigens, Ihr * "@Kurs-Filter" * ist eine ehrenvolle Erwähnung, aber nicht sachlich richtig :) - Ich bin nicht der Autor dieses Filters, [Wasif Hasan Baig] (https://github.com/baig) . Kurt Pfeifle vor 8 Jahren 1
@KurtPfeifle deine Antwort ist perfekt! Es ist eigentlich die Antwort auf die Frage, die ich gestellt habe! Es ist mir egal, wie es in Markdown aussieht, nur wie es in PDF aussieht. :) Und deine Antwort bekommt mich sowieso mit "-o Markdown". :) Danke für die Lektion! Richard Herron vor 8 Jahren 0
Übrigens, ich habe '-o markdown' nicht empfohlen, aber `-o somename.pdf` :) Kurt Pfeifle vor 8 Jahren 0