Alignta.vim 0.3.0 使用方式
舊篇「文字對齊 plugin - Alignta 使用方式」已過時,本文以 Alignta 0.3.0 為準重寫。
※變更項目參考原 doc(日文)alignta.jax#更新履歴 - 2011-09-25。
Alignta (h1mesuke/vim-alignta) 是什麼?
對齊文字用的 plugin,效果舉例如下,將多行文字依等號對齊:
原文 :Alignta = ------------ ------------ a = 1 a = 1 bbb = 10 bbb = 10 ccccc = 100 ccccc = 100
另一支比較有名的對齊 plugin 是 Dr. Chip 的 Align.vim,可惜用法難懂,不容易記; Alignta 或許功能沒那麼豐富 (?),但實在清楚多了,名字也比較可愛。
SYNOPSIS of Alignta command (for v. 0.3.0, UNOFFICIAL)
(Shifting Alignment) <- -> n <-- --> :[range]Alignta [filter] [align method][margin] [-p] [-erER] pattern[/{count}] [pattern2 ...] g/pattern (Padding nunber v/pattern Alignment) 'g' < n:n | [0-9][0-9] > [0-9] = (repeat as LM[R]...)
-
filter (doc#556)
指定哪些特殊的行(通常是註解)要/不要進行對齊。
g/pattern
只處理符合的行;v/pattern
不處理符合的行。 -
align method
Alignta 的對齊分為 Shifting 和 Padding 兩種,參數也分為兩套。
Shifting Alignment (doc#153) 比較簡單,只是將 pattern 的開頭垂直排在一起。
以下參數表示採 Shifting 對齊: (doc#445)-
<-
將每一行符合 pattern 的部分,對齊到其中最靠左的 column -
->
同上,但對齊到最靠右的 column -
<--
-
-->
兩個 dash 的版本表示用 tab 字元排版
Padding Alignment (doc#121) 應該比較常用,依 patten 將文字拆成多個欄位,每行再補上空白(padding)使各欄等寬。
各欄以 {L}{M}{R} 為一個單位,{M} 就是 pattern 符合的位置,{L}{R} 是它的左右側。 寫法是以
<
、|
、>
、=
指定各單位靠左、靠中、靠右或保持原本方式對齊, 例如:Alignta <|> =
會讓等號兩邊靠外對齊。 (doc#304)
註:{R} 可省略,表示跟 {L} 相同,例如<=
和<=<
同義。
註:若後面有指定多個 pattern,這裡可以重覆 {L}{M}{R} 來指定多個對齊方式。 -
-
margin (doc#304)
指定各欄位的間隔。
Padding 對齊時,間隔是指 {L}、{R} 和 {M} 之間的空白數; 寫法是 {L-margin}:{R-margin},例如
:Alignta <<3:1 =
。
可簡寫為 {L-margin}{R-margin} 或 {LR-margin},但 margin 必須是個位數 [0-9](10 就不行了),例如46
即 4:6,4
即 4:4。
Shifting 對齊時,間隔是指 pattern 左側至少要留的空白數。 單純寫個數字即可。
-
-e -r -E -R (doc#227)
明確指定後面 pattern 的解析方式。
-e
視為純文字-r
視為 regexp pattern-E
之後的 pattern 一律視為純文字-r
之後的 pattern 一律視為 regexp pattern
例如
:Alignta -e \d
是以 \d 對齊,而非以數字(\d)對齊。 -
-p (doc#592 )
若後面的 pattern 是特殊字,加上 -p 可確保它被視為 pattern。 例如
:Alignta -p <<
中的 << 是指 pattern,而非對齊方式。 -
pattern[/{count}]
指定要用什麼來對齊。(doc#188)
若 pattern 包含
\
或.
,就會被視為 regexp 解析,否則一律以純文字處理。pattern 後面可以加 /{count},指定可符合幾次,超過 count 就不再對齊(doc#254), 例如
:Alignta ={2}
只會處理前兩個等號,之後的就保持原狀。
另 count 使用/g
表示有 pattern 符合時才對齊,否則不理它。註:count 預設值在 Shifting 對齊時是
/1
,Padding 對齊時是/g
。
註:Alignta 的參數若不符合其他任何 option 寫法,就會被視為 pattern。
註:若有設定 alignta_default_arguments 變數,則此參數也能省略。 -
pattern2 ...
支援複數的 pattern,直接寫在後面即可,例如
:Alignta = /* */
。 (doc#287)
可設定的變數 (doc#618)
-
g:alignta_default_options
:Alignta
的預設對齊選項。 參數中未指定對齊選項時,就會以此為準,預設為"<<<1:1"
。 -
g:alignta_default_arguments
直接下:Alignta
不帶參數時,會使用的預設參數。 無預設值。
以上變數也可使用 b:
前綴設定 buffer local 版,例如 b:alignta_default_arguments。
Unite.vim 介面 (doc#654)
如果配合 Shougo/unite.vim 一起使用,可以做到:
-
先把常用的對齊方式定義好,以後選取文字 → 呼叫
:Unite alignta:arguments
,就能在 unite 介面中直接選擇對齊方式,不必再想指令了。 -
直接呼叫
:Unite alignta:options
,就可以在 unite 介面中調整:Alignta
的預設選項(可事前定義),也有提供方便的 <RESET> 選項。
有 0 個意見
☂