對齊文字用的 plugin,以前我是用 Dr. ChipAlign.vim,現在換成 Alignta 了;雖然預設功能比較不豐富,但實在好懂多了。

目前 ver. 0.2.1 只有日本語的 doc,如果 help 打不開(E426),可能要先 :set notagbsearch


SYNOPSIS of Alignta command (for v. 0.2.1, UNOFFICIAL)

                              (Shifting
                               Alignment)
                                 <- 
                                 -> 
                                 <--
                                 -->

:[range]Alignta[!] [filter]  [align method][margin]   [-p] pattern[{count}] [pattern2 ...]

                   g/pattern  (Padding                              number
                   v/pattern   Alignment)                            '+'
                                  <           n:n                
                                  |        [0-9][0-9]
                                  >          [0-9]
                                  =          
                              (repeat as     @margin
                                LM[R]...)
  • !

    有 ! 的話,pattern 會被解釋為 regexp。

  • filter

    指定忽略哪些特殊的行(通常是註解)不進行對齊。g/pattern 只處理符合的行;v/pattern 不處理符合的行。

  • align method

    Alignta 的對齊分為 Shifting Alignment 和 Padding Alignment 兩種。
    align method 參數也分為兩套,區別是哪一套的同時,也用來指定對齊細節。

    Shifting Alignment 比較簡單,只是將 pattern 的開頭垂直排在一起。
    <- 是將每一行符合的部分,對齊到其中最靠左的 column;-> 則是對齊到最靠右的 column。
    兩個 dash 的版本(例如 -->)表示使用 tab 字元排版。

    另一種 Padding Alignment 是依 patten 將文字拆成多個欄位。
    以 {L}{M}{R} 為一個單位,{M} 就是 pattern 符合的欄,{L}{R} 是它的左右側。 可以用 <|>= 指定各欄位靠左、靠中、靠右或保持原本方式對齊。
    註:{R} 可省略,表示跟 {L} 相同,例如 :Alignta <|> = 讓等號兩邊靠外對齊。
    註:若後面有指定多個 pattern,這裡可以重覆 {L}{M}{R} 來指定多個對齊方式。

  • margin

    指定各欄位的間隔。
    一般是配合 align metohd,有幾個欄位就寫幾個 margin,各個 margin 以冒號分開,例如 :Alignta <<3:1 =
    也可簡寫為 {L-margin}{R-margin} 或 {LR-margin},但 margin 必須是個位數( 0-9,10 就不行了), 例如 46 即 4:6,4 即 4:4。
    若沒有 align method,只想設 margin 時,在前面加 @ 即可,例如 :Alignta @00 =

  • -p

    如果後面的 pattern 是特殊字,加上 -p 可確保它被視為 pattern。 例如 :Alignta -p << 是以 << 作為 pattern。

  • pattern[{count}]

    pattern 指定要用什麼來對齊。
    如果有設定 alignta_default_arguments 變數,那這個也能省略。

    pattern 後面可以加 {count},指定要符合幾次,超過 count 就不會再對齊了。
    例如 :Alignta ={2} 只會處理前兩個等號,之後的就保持原狀。
    {+} 表示有 pattern 符合時才對齊,否則不理它。

    count 的預設值在 Shifting Alignment 是 {1},Padding Alignment 是 {+}

  • pattern2 ...

    支援複數的 pattern,直接寫在後面。例如 :Alignta = /* */

  • :Align

    如果沒裝 Align.vim,那 :Align 就是 :Alignta 的別名,直接用 :Align 也 OK。