Sublime Text 3 で列を右揃えにする

Sublime Text 3 で列を右揃えにする

私はしたいと思いますSublime Text 3 でテキストを列に揃えます (Win 8.1 上、FWIW)。

つまり、これを変換したいのです

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

この中に

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

この究極の目標は

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

これはシンプルなテーブルパンドックalignmentおよびパッケージを試しましたAlignTabが、これらは、必要な列の位置合わせではなく、一部の区切り文字の位置合わせに特化しているようです。

これを実行するには何かコツがありますか? vi または Excel を必要とするソリューションも検討します。

答え1

さて、ここでは、Excel または CVS をエクスポートできるその他のスプレッドシート プログラムを使用するソリューションを紹介します。


インストールする必要があります新しくリリースされた「csv2table」というサードパーティのフィルター(<- GitHub リポジトリ) Pandoc 用。

以下でも入手可能スタンドアロンフィルター

  1. スタンドアロン フィルターを次のようにインストールします。

    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. しかし、私が好むインストール方法はcabal:

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

読むcsv2table ドキュメント

このフィルターで何ができるのでしょうか?

  1. 外部 CSV ファイルを Markdown に含めるには、次の操作を行います...

    • ...悪用するか構文を含む画像このような:

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

    • ...または悪用することでフェンスで囲まれたコードブロック構文は次のようになります:

      ```` {.table source="/path/to/file.csv" <list-of-attributes>}
      ````
      
    • ...または、次のように CSV 行を「フェンス テーブル セクション」に直接挿入します。

      ```` {.table <list-of-attributes>}
      one,two,three
      1,2,3
      100,2000,55555
      ````
      
  2. Pandoc コマンドライン内でフィルターを呼び出すと、
    --filter=pandoc-csv2table
    CSV はすべての出力形式のテーブルに変換されます。

  3. さらに、Pandoc でサポートされているほぼすべての書式設定をテーブルに適用できます。

    • 属性を使用しtype="multiline"て を作成しますmultiline_table
    • type="pipe"を作成するために使用しますpipe_table
    • type="simple"を作成するために使用しますsimple_table
    • caption="My ***important*** caption for this table"表のキャプションを追加するために使用します。(マークダウン形式を含めることができます。)
    • header="no"列ヘッダーのないテーブルが必要な場合に使用します(指定されていない場合は、デフォルト値が使用されますheader="yes")。
    • 今、あなたが望む機能は次のとおりです:aligns=LRCDR列の配置 (左から右) を左、右、中央、デフォルト、右の順に並べ替える場合に使用します。

  1. 次のmy.csvファイルを考えてみましょう:

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

    (ご覧のとおり、CSV 行の一部のデータ フィールドには Markdown マークアップも使用しています)

  2. 次の Markdown を考えてみましょうmy.md

    # 見出し
    
     ```` {.table source=".​​/my.csv" aligns="LRCR" type="multiline" caption="いくつかの***キャプション***"}
     「」
    
  3. このコマンドを実行して、CSV 入力から Markdown の複数行テーブル出力を生成します。

    pandoc my.md --filter=pandoc-csv2table -t マークダウン
    

    次の出力を参照してください。

    Markdown出力のスクリーンショット

  4. このコマンドを実行して、CSV 入力から複数行のテーブルを含む PDF 出力を生成します。

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

    この出力(スクリーンショット)をご覧ください:

    PDF出力のスクリーンショット

  5. 生成したい場合「パイプテーブル」配置を示すコロン構文を使用する場合は、Markdown とコマンドラインを少し変更する必要があります。

    • マークダウンの変更type="pipe"表の書式設定オプションに含めるもの:

      # 見出し
      
       ```` {.table source=".​​/my.csv" aligns="LRCR" type="pipe" caption="いくつかの***キャプション***"}
       「」
      
    • コマンドラインを変更する出力を要求するにはmarkdown_phpextra+table_captions:

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

      出力を見てみましょう:

      配置「コロン」を含む <code>pipe_tables</code> 出力のスクリーンショット

  6. もちろん、他のすべての出力形式でも機能します。

答え2

別の解決策があります。Pandoc ではpipe_tables次の形式が必要であり、左揃え、中央揃え、右揃えを処理できます。

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

  : Demonstration of pipe table syntax.

列をパイプで区切ると|、終わったら

  • alignmentまずSublime Text 3のパッケージにパイプを揃えます
  • 次に、コロンを手動で追加し直して:、目的の位置合わせを実現します。

これは @Kurt のフィルターほど簡単ではありませんが (堅牢性もまったくありません :) )、かなり簡単です。

関連情報