Spalten rechtsbündig ausrichten in Sublime Text 3

Spalten rechtsbündig ausrichten in Sublime Text 3

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

Das heißt, ich möchte dies konvertieren

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

das mögen

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

mit dem ultimativen Ziel dieser

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

Dies eineinfacher TischInpandoc. Ich habe die Pakete alignmentund ausprobiert AlignTab, aber diese scheinen auf die Ausrichtung einiger Trennzeichen spezialisiert zu sein, anstatt auf die von mir benötigte Ausrichtung von Spalten.

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

Antwort1

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


Sie müssen einneu veröffentlichter Drittanbieterfilter namens „csv2table“(<- GitHub-Repository) für Pandoc.

Es ist auch erhältlich alsein eigenständiger Filter.

  1. Installieren Sie den Standalone-Filter wie folgt:

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

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

Lies dascsv2table-Dokumentation.

Was können Sie mit diesem Filter tun?

  1. Sie können eine externe CSV-Datei in Ihr Markdown einbinden, indem Sie...

    • ...entweder durch Missbrauch derBild inklusive Syntaxso was:

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

    • ...oder durch Missbrauch dereingezäunter CodeblockSyntax wie folgt:

      ```` {.table source="/path/to/file.csv" <list-of-attributes>}
      ````
      
    • ...oder indem Sie Ihre CSV-Zeilen direkt in den „eingezäunten Tabellenabschnitt“ einfügen, wie folgt:

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

  3. Darüber hinaus können Sie nahezu alle von Pandoc unterstützten Formatierungen auf die Tabelle(n) anwenden:

    • Verwenden Sie das Attribut, type="multiline"um ein zu erstellen multiline_table.
    • Verwenden Sie es type="pipe", um ein zu erstellen pipe_table.
    • Verwenden Sie es type="simple", um ein zu erstellen simple_table.
    • Zum caption="My ***important*** caption for this table"Hinzufügen einer Tabellenüberschrift. (Dies kann Markdown-Formatierung enthalten.)
    • Verwenden Sie es header="no", wenn Sie eine Tabelle ohne Spaltenüberschriften wünschen (der Standardwert ist , falls nicht angegeben header="yes").
    • Nun die gewünschte Funktion:Verwenden Sie aligns=LRCDRdiese Option, um die Ausrichtung der Spalten (von links nach rechts) als Links, Rechts, Zentriert, Standard und erneut Rechts anzuordnen.

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 für einige der Datenfelder der CSV-Zeilen sogar Markdown-Markup!)

  2. Betrachten Sie dieses Markdown my.md:

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

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

    Sehen Sie sich diese Ausgabe an:

    Screenshot der Markdown-Ausgabe

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

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

    Sehen Sie sich diese Ausgabe an (Screenshot):

    Screenshot der PDF-Ausgabe

  5. Wenn Sie generieren möchten"rohr tisch"Um die Syntax mit den Doppelpunkten zur Anzeige der Ausrichtung zu verwenden, müssen Sie Markdown und die Befehlszeile ein wenig modifizieren:

    • Markdown änderntype="pipe"in die Tabellenformatierungsoptionen aufzunehmen :

      # Überschrift
      
       ```` {.table source="./my.csv" aligns="LRCR" type="pipe" caption="Einige ***caption***"}
       ````
      
    • Befehlszeile ändernum eine Ausgabe anzufordern markdown_phpextra+table_captions:

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

      Sehen Sie sich jetzt die Ausgabe an:

      Screenshot mit <code>pipe_tables</code>-Ausgabe inklusive Ausrichtungs-"Doppelpunkten"

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

Antwort2

Ich habe eine andere Lösung. Pandoc pipe_tableserfordert das folgende Format und kann Links-, Mitten- und Rechtsausrichtungen verarbeiten.

| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
|   12  |  12  |    12   |    12  |
|  123  |  123 |   123   |   123  |
|    1  |    1 |     1   |     1  |

  : Demonstration of pipe table syntax.

Wenn ich die Spalten durch Pipes trenne |, dann kann ich, wenn ich fertig bin

  • Richten Sie zuerst die Rohre mit dem alignmentPaket in Sublime Text 3 aus
  • Fügen Sie dann die Doppelpunkte manuell wieder hinzu, :um die gewünschte Ausrichtung zu erhalten.

Dies ist nicht ganz so einfach wie der Filter von @Kurt (und bei weitem nicht so robust :)), aber es ist ziemlich unkompliziert.

verwandte Informationen