2012年3月3日 星期六

Sublime Text 2 - 好用的前端程式編輯器 Part.6 另一種對齊的Package Abacus


上一篇介紹的 Sublime Text 2 Package「Alignment」是最多人使用的對齊套件,然而也有另一個Package也是做同樣的操作功能,然而卻有一些的不同,所以這邊也同樣介紹給大家,

image

 


Abacus
https://github.com/khiltd/Abacus

 

image

在Package於github Respository的README.md中就有說明以及一個動畫圖示說明,相信應該可以一目了然這個Package的說明。

安裝

叫出Command Palette,輸入「install package」,顯示Package List後再輸入「abacus」,選擇「Abacus」後按下Enter鍵,安裝完畢後請重新啟動Sublime2,完成安裝Abacus。

image


使用

你可以使用快速鍵「Ctrl + Alt + ]」來對選取的程式碼做對齊的操作,或是在你把程式碼選取之後,選擇 Menu 的「Selection > Abacus Align」來完成程式碼對齊的操作。

image

這一個 Package 與「Alignment」比較大的不同就是在於「Abacus」它可以指定要對齊的部份是否包含指定字符,
以「:」與「=」這兩個字符來說明:

image

當中的「gravity」可以設定兩種值,一個是「left」而另一個則是「right」。



「gravity」設定為 left 時

使用Align操作時並不會連同指定字符(就是那個token)也一起包含進來做對齊,

Before


After


可以看到只會對「:」之後的程式碼做對齊的操作,所以是會排除指定的token。

 


「gravity」設定為 right 時

使用Align操作時會連同指定字符(就是那個token)也一起包含進來做對齊,

Before


After


可以看到會對「=」以後的程式碼做對齊的操作,會包含指定的 token。


另外使用「Abacus」進型 Align 操作後,是會把對齊後的程式碼做 multi-selection 的選取,這樣的好處是可以方便我們對這些程式做同步的編輯,如果在執行對齊操作後有 multi-selection 的效果,可以在做完 Align 後接著按「ESC」就可以解除 multi-selection。




Preserve Indentation


這個設置是要當你進行 Align 操作後是否要保持原本程式碼的縮進狀態,如果這邊修改為 false,就不會保持原本程式碼的縮進,不管你選取的程式碼有沒有整齊,你操作Abacus Align之後就是會幫你排好好的;反之,如果設定為 true,當你操作Abacus Align之後,將會你原本的程式碼的縮進。

「preserve_indentation」設定為 false


Before


After


原本key的排版是雜亂的,而當操作Abacus Align之後,就是會幫你排得整整齊齊的。


「preserve_indentation」設定為 true


Before


After


這樣應該可以看出「preserve_indentation」設定為 true or false的差異,預設情況下都是設定為「false」,而實際的使用就要看各位編輯程式時的習慣來做調整。


 

Abacus 的 Settings


上述的Abacus的設定都會放在以下的地方,「Preferences > Package Settings > Abacus > Settings - Default」

image

內容:
{    
    "com.khiltd.abacus.separators": 
    [    
        { 
            "token":                ":",
            "gravity":              "left",
            "preserve_indentation": true
        },
        { 
            "token":                "=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "+=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "-=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "*=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "/=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "?=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "||=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "%=",
            "gravity":              "right",
            "preserve_indentation": true
        },
        { 
            "token":                "==",
            "gravity":              "right",
            "preserve_indentation": true
        }
    ]
}

這個設定的內容除了單一的「:」「=」字符外,也會有複合字符的token設定,如此也可以對「+=」這樣的程式碼做對齊的操作了。



有關程式碼對齊的 Package 就介紹了兩種,而這兩種 Packages 在操作上是不會相互衝突的,所以你的 Sublime Text 2可以同時安裝這兩種 Packages,反正功能差不多,擇一安裝也可以,就選個適合你的程式碼對齊 Package吧!


以上

2 則留言:

  1. 請問這個 Package 若要手動安裝的話是要怎麼做阿?

    回覆刪除
    回覆
    1. 有關手動安裝Package的說明請參考以下的文章:
      「Sublime Text 2 - 好用的前端程式編輯器 Part.8 - 手動安裝Package」
      http://kevintsengtw.blogspot.com/2012/03/sublime-text-2-part8-package.html

      刪除

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。