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

這是簡單的桌子潘多克。我嘗試了alignmentAlignTab包,但這些似乎專門用於對齊一些分隔符,而不是像我需要的那樣對齊列。

有什麼技巧可以做到這一點嗎?我也願意接受需要 vi 或 Excel 的解決方案。

答案1

好的,這是一個涉及 Excel 或任何其他能夠匯出 CVS 的電子表格程式的解決方案。


你必須安裝一個新發布的第三方過濾器名為“csv2table”Pandoc 的(<- GitHub 儲存庫)。

它也可以作為獨立的過濾器

  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"新增表格標題。 (這可以包括 Markdown 格式。)
    • 如果您想要一個沒有列標題的表格,請使用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
    

    看到這個輸出:

    Markdown 輸出的螢幕截圖

  4. 執行此命令可從 CSV 輸入產生具有多行表的 PDF 輸出:

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

    請參閱此輸出(螢幕截圖):

    PDF 輸出的螢幕截圖

  5. 如果你想生成“管表”使用指示對齊的冒號語法,您必須稍微修改 Markdown 以及命令列:

    • 修改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

我有另一個解決方案。 Pandocpipe_tables需要以下格式,並且可以處理左對齊、居中對齊和右對齊。

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

  : Demonstration of pipe table syntax.

如果我用管道分隔列|,那麼當我完成後我可以

  • 首先將管道與alignmentSublime Text 3 中的套件對齊
  • 然後手動添加回冒號:以獲得所需的對齊方式。

這並不像 @Kurt 的過濾器那麼容易(並且沒有那麼強大:)),但它相當簡單。

相關內容