zoukankan      html  css  js  c++  java
  • Sublime Text 编辑器 插件 之 "Sublime Alignment" 详解

    作者:shede333
    主页:http://my.oschina.net/shede333
    版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][]


    #Sublime Text 编辑器 插件 之

    "Sublime Alignment" 详解

    Sublime Alignment 主要用于代码对齐,最新版据说已经集成了这个插件。 下载地址:


    插件安装方式、以及较好的插件推荐,如下:

    Sublime Text 2 入门及技巧 | Lucifr

    编码神器 Sublime Text 包管理工具及扩展大全 - 开源中国社区


    Mac上的设置文件位置:
    左上角Sublime Text -> Preferences -> Package Settings ->Alignment 如果没有最后的"Alignment"选项,说明你还没有安装此插件。

    这里面有5个选项:

    • Settings- Default
    • Settings- User
    • Settings- Syntax Specific - User
    • Key Bildings - Default
    • Key Bildings - User

    带有后缀Default的,为默认设置,每次升级插件都会重置这里的设置。所以尽量不要修改这里,否则升级会丢失你原先的设置。

    带有后缀User的,为用户自定义设置,你可以把Default里面的设置全部复制一份到这里,然后再修改,这里存在的设置选项会覆盖Default里面的,即User的优先级更高。

    Key Bildings为快捷键设置,默认的快捷键很有可能因为和其他快捷键冲突而无效, 所以及可以在Key Bildings - User里重新设置(格式可以仿照Default里的写法)。
    此快捷键是用来 实现对齐的。


    这个插件的默认设置Settings- Default如下:

    {
        // If the indent level of a multi-line selection should be aligned
        "align_indent": true,
    
        // If indentation is done via tabs, set this to true to also align
        // mid-line characters via tabs. This may cause alignment issues when
        // viewing the file in an editor with different tab width settings. This
        // will also cause multi-character operators to be left-aligned to the
        // first character in the operator instead of the character from the
        // "alignment_chars" setting.
        "mid_line_tabs": false,
    
        // The mid-line characters to align in a multi-line selection, changing
        // this to an empty array will disable mid-line alignment
        "alignment_chars": ["="],
    
        // If the following character is matched for alignment, insert a space
        // before it in the final alignment
        "alignment_space_chars": ["="],
    
        // The characters to align along with "alignment_chars"
        // For instance if the = is to be aligned, there are a number of
        // symbols that can be combined with the = to make an operator, and all
        // of those must be kept next to the = for the operator to be parsed
        "alignment_prefix_chars": [
            "+", "-", "&", "|", "<", ">", "!", "~", "%", "/", "*", "."
        ]
    }
    

    ##参数详解

    下面为原始测试数据

    int aa = 1;
        char bb = 'a';
            float fff = 2;
    unsigned int d = 1;
    

    ###"align_indent":

    开关量,默认为true,

    • true,则把选择的多行的 不同缩进级别也变成相同的缩进(最大的缩紧级别),结果如下:
            int aa = 1;
            char bb = 'a';
            float fff = 2;
            unsigned int d = 1;
    
    • flase,只是对齐,不改变缩进级别
    int aa            = 1;
        char bb       = 'a';
            float fff = 2;
    unsigned int d    = 1;
    

    ###"mid_line_tabs"

    开关量,默认为false。
    如果你的文本是使用Tab键缩进排版,设置该变量为true时,那么该插件在对齐文本的时候也使用Tab键来对齐缩进。
    但是这样可能会出现问题,因为Tab键在不同的编辑器上代表的空格数可能不同(Sublime 是代表4个空格), 当你使用别的编辑器打开该文件时,简而言之,就是排版可能就不是对齐的了。


    ###"alignment_chars"

    对齐字符

    这是一个数组,可以这样设置多个字符:alignment_chars": ["=","*","a"]
    默认只有“=”字符,即alignment_chars": ["="]
    数组里面的字符就是放在中线对齐的字符。
    如下面都把“=”排成一列中线对齐

            int aa         = 1;
            char bb        = 'a';
            float fff      = 2;
            unsigned int d = 1;
    

    例如设置里增加“*”号,即:alignment_chars": ["=","*"]
    结果如下:

    原文:

    int *aa = 1;
        char *bb = 'a';
            float *fff = 2;
    unsigned int *d = 1;
    

    排列对齐后:(把“*”号排成对齐的一列)

            int          *aa = 1;
            char         *bb = 'a';
            float        *fff = 2;
            unsigned int *d = 1;
    

    ###"alignment_space_chars"

    和**"alignment_chars"**一样,也是数组格式 默认值包含“=”号,即:alignment_space_chars": ["*","="]

    就是这个数组包含上面**"alignment_chars"里的字符, 对齐后,在其前面增加一个空格。
    如果这里不包含
    "alignment_chars"**里的字符,对齐后,在其前面没有空格。

    可以这样说, **"alignment_space_chars"数组是"alignment_chars"**数组的子集。

    原文还在文章的起始处,这里设置包含“=”,
    alignment_space_chars": ["="]
    结果如下:

            int aa         = 1;
            char bb        = 'a';
            float fff      = 2;
            unsigned int d = 1;
    

    这里设置不包含任何字符,
    alignment_space_chars": []
    结果如下:

            int aa        = 1;
            char bb       = 'a';
            float fff     = 2;
            unsigned int d= 1;
    

    ###"alignment_prefix_chars"

    即:前缀字符 默认设置:
    "alignment_prefix_chars": ["+", "-", "&", "|", "<", ">", "!", "~", "%", "/", "*", "."]

    对齐字符(即alignment_chars"里的字符),可以拥有前缀字符。
    例如"="号字符前可以拥有以上字符作为前缀。

    原文设置如下:(这里的前缀字符有 "!"、"<"符号)

    int aa = 1;
        char bb != 'a';
            float fff <= 2;
    unsigned int d = 1;
    

    对齐后如下:(即把前缀字符+对齐字符一起当作对齐字符来对待)

            int aa         = 1;
            char bb        != 'a';
            float fff      <= 2;
            unsigned int d = 1;
    

    ##总结

    可按照以上的参数说明,自己增加对齐的字符来增强功能。
    我一般需要在对齐字符前面增加一个空格,
    所以我一般就保持alignment_chars 数组和 alignment_space_chars数组一致。即在所有的对齐字符前面都增加一个空格。

    转载自:https://my.oschina.net/shede333/blog/170536

  • 相关阅读:
    document.getElementById("mytxt").style.left=""style.left在IE的FF中注意
    asp.net 用户控件中 使用相对路径的解决方法 图片路径问题(用户控件、图片路径) ,ResolveUrl
    探索 Block (一) (手把手讲解Block 底层实现原理)
    iOS 多线程开发 (概念与API简介)
    iOS 性能小点
    iOS runtime (二)(runtime学习之AutoCoding源码分析)
    探索 NSRunLoop (二)(NSRunLoop 自己动手实现SimpleRunLoop)
    iOS NSNotificationCenter (自己实现一个通知中心XMCNotificationCenter)
    iOS runtime (三)(runtime学习之YYModel源码分析)
    iOS runtime(一)(runtime 分析理解)
  • 原文地址:https://www.cnblogs.com/chengqi521/p/7596259.html
Copyright © 2011-2022 走看看