Sublime Text3的插件拌消、配置總結(jié)

1. 我的主題

主題1:Ksix

主題2:Boxy

  • UI用了Boxy的UI:Boxy Ocean.sublime-theme
  • 代碼顏色用了Ksix的:Packages/Theme - Ksix/Ksix.tmTheme
  • 相關(guān)配置看下面的 **我的配置 **

2. 我自己的配置

Perferences->Settings - User

{
    "auto_complete": true,                                   /* 代碼提示 */
    "auto_match_enabled": false,                             /* 自動(dòng)匹配引號(hào)管宵,括號(hào)等蹄梢,即按了一個(gè)"棺牧,就自動(dòng)出現(xiàn)另外一個(gè) */
    "color_scheme": "Packages/Theme - Ksix/Ksix.tmTheme",    /* theme */
    "draw_minimap_border": true,                             /* 右側(cè)縮略圖邊框 */
    "font_face": "YaHei Consolas Hybrid",                    /* 字體設(shè)置 */
    "font_size": 13,                                         /* 字體大小 */
    "highlight_line": true,                                  /* 當(dāng)前行標(biāo)亮 */
    "ignored_packages":                                      /* 開(kāi)啟vim模式 */
    [
        "Toggle Css Format"
    ],
    "save_on_focus_lost": false,                             /* 失去焦點(diǎn)后保存 */
    "show_encoding": true,                                   /* 顯示當(dāng)前文件編碼 */
    "tab_size": 4,                                           /* Tab鍵制表符寬度 */
    "theme": "Boxy Ocean.sublime-theme",                     /* theme */
    "translate_tabs_to_spaces": true,                        /* 設(shè)為true時(shí)螃成,縮進(jìn)和遇到Tab鍵時(shí)使用空格替代 */
    "update_check": false,                                   /* 關(guān)閉自動(dòng)更新 */
    "word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?", /* 雙擊選中中劃線 */
    "word_wrap": true,                                       /* 強(qiáng)制換行 */
    "wrap_width": 80,                                         /* 超過(guò)80字符自動(dòng)換行 */
     "draw_white_space": "all"                          /* 顯示空格呕臂,tab 換行等不可見(jiàn)字符 */
}

3. 小技巧

----多項(xiàng)目并行開(kāi)發(fā)如何做到快速切換----

多項(xiàng)目并行開(kāi)發(fā)如何做到快速切換——sublime Text3
注意:新建其它Project時(shí)淡喜,要在另外一個(gè)窗口中進(jìn)行,不然會(huì)覆蓋之前的Project

4. 好用插件

----Package Control----

這個(gè)就不多說(shuō)诵闭,sublime Text3是自帶的炼团,安裝、使用方法自行百度疏尿。
下面所有插件都要用這個(gè)安裝的瘟芝。


----Emment----

詳細(xì)功能請(qǐng)看《Emmet:HTML/CSS代碼快速編寫(xiě)神器》

修改 Emmet 兼容jsx 文件

打開(kāi) preferences -> Key bindings - Users,把下面代碼復(fù)制到[]內(nèi)部褥琐。

{
      "keys": [
        "super+e"
      ],
      "args": {
        "action": "expand_abbreviation"
      },
      "command": "run_emmet_action",
      "context": [{
        "key": "emmet_action_enabled.expand_abbreviation"
      }]
    },
    {
      "keys": ["tab"],
      "command": "expand_abbreviation_by_tab",
      "context": [{
        "operand": "source.js",
        "operator": "equal",
        "match_all": true,
        "key": "selector"
      }, {
        "key": "preceding_text",
        "operator": "regex_contains",
        "operand": "(\\b(a\\b|div|span|p\\b|button)(\\.\\w*|>\\w*)?([^}]*?}$)?)",
        "match_all": true
      }, {
        "key": "selection_empty",
        "operator": "equal",
        "operand": true,
        "match_all": true
      }]
    }
    ```

*** 

### ----Terminal----
![](http://upload-images.jianshu.io/upload_images/1608970-336d98bb01dfa7b9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 在Sublime中直接使用終端打開(kāi)你的項(xiàng)目文件夾锌俱,并支持使用快捷鍵。

***

### ----SVG-Snippets----

[SVG-Snippets](https://github.com/jorgeatgu/SVG-Snippets)

> 設(shè)置自定義的SVG片段


*** 

### ----ColorPicker----
![](http://upload-images.jianshu.io/upload_images/1608970-b056f46d58a4e4c2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 取色器

![](http://upload-images.jianshu.io/upload_images/1608970-75d2f0e5b1d8268b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


*** 

### ----jade----
![](http://upload-images.jianshu.io/upload_images/1608970-ff0c3b15af02fab2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> jade語(yǔ)法高亮

*** 

### ----DocBlockr----
![](http://upload-images.jianshu.io/upload_images/1608970-77526f8189438036.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> **用于快速書(shū)寫(xiě)注釋敌呈,以及規(guī)范注釋**贸宏,詳細(xì)內(nèi)容見(jiàn)鏈接:
[DocBlockr與javascript注釋規(guī)范](http://www.ithao123.cn/content-719950.html)

*** 

### ----Autoprefixer----
![](http://upload-images.jianshu.io/upload_images/1608970-a1930d6fbd7c21ff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> CSS3前綴自動(dòng)補(bǔ)全造寝,需要安裝[nodejs](https://nodejs.org/en/),詳細(xì)用法以及配置見(jiàn)鏈接:
[如何處理CSS3屬性前綴](http://www.w3cplus.com/css3/autoprefixer-css-vender-prefixes.html)

*** 

### ----Block Cursor----
![](http://upload-images.jianshu.io/upload_images/1608970-cdedf14b31891698.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 改成vim編輯模式吭练,將光標(biāo)所在的字符高亮诫龙,而不是默認(rèn)的在字符下呈下劃線

*** 

### ----MarkdownEditing,OmniMarkupPreviewer----  
![](http://upload-images.jianshu.io/upload_images/1608970-01d05fa98c2101d4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](http://upload-images.jianshu.io/upload_images/1608970-3d69d75ccba04df8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 在sublime書(shū)寫(xiě)Markdown鲫咽,詳細(xì)用法和配置見(jiàn)鏈接:
[近乎完美的 Markdown 寫(xiě)作體驗(yàn) - Sublime Text 3 + OmniMarkupPreviewer](http://blog.leanote.com/post/54bfa17b8404f03097000000)  
[Sublime Text 3下兩款Markdown插件](http://www.linuxidc.com/Linux/2015-08/121178.htm)  
[Sublime插件:Markdown篇](http://www.reibang.com/p/aa30cc25c91b)  

*** 

### ----ReactJS----
![](http://upload-images.jianshu.io/upload_images/1608970-bf0bc5f5789f3ef9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> React函數(shù)自動(dòng)補(bǔ)充签赃,用法見(jiàn)鏈接:
[sublime-react](https://github.com/facebookarchive/sublime-react)
**補(bǔ)充:**
上述鏈接說(shuō)此包不提供語(yǔ)法高亮,建議使用[babel-sublime](https://github.com/babel/babel-sublime)

*** 

### ----babel-sublime----
![](http://upload-images.jianshu.io/upload_images/1608970-725a9a7738a1f287.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> Language definitions for [ES6+ JavaScript](http://kangax.github.io/compat-table/es6/) with [React JSX syntax](http://facebook.github.io/react/docs/jsx-in-depth.html) extensions.
**詳細(xì)用法見(jiàn)鏈接:**
[babel-sublime](https://github.com/babel/babel-sublime)

*** 

### ----HTML-CSS-JS Prettify----  
![](http://upload-images.jianshu.io/upload_images/1608970-784f881bf5165d8a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 格式化HTML分尸、CSS锦聊、JS,詳細(xì)用法見(jiàn)鏈接(或者看看下面的簡(jiǎn)單摘要):
[使用Sublime Text 3的HTML-CSS-JS Prettify插件格式化代碼](https://segmentfault.com/a/1190000000666502)

#### 簡(jiǎn)單摘要
如果出現(xiàn)下面的錯(cuò)誤:
![](http://upload-images.jianshu.io/upload_images/1608970-6397173bab9dc03f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
鼠標(biāo)右鍵`HTML/CSS/JS Prettify` > `Set Plugin Options`保證插件路徑與Node.js安裝路徑一致箩绍,Ctrl+s保存孔庭。**(如下:我的nodejs安裝在`D:/software/nodejs/node.exe`)**

{
// Simply using node without specifying a path sometimes doesn't work :(
// https://github.com/victorporof/Sublime-HTMLPrettify#oh-noez-command-not-found
// http://nodejs.org/#download
"node_path": {
"windows": "D:/software/nodejs/node.exe",
"linux": "/usr/bin/nodejs",
"osx": "/usr/local/bin/node"
},

// Automatically format when a file is saved.
"format_on_save": false,

// Only format the selection if there's one available.
"format_selection_only": true,

// Log the settings passed to the prettifier from .jsbeautifyrc.
"print_diagnostics": true
}


*** 

### ----IMESupport----  
![](http://upload-images.jianshu.io/upload_images/1608970-492444718d1a17e5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 這個(gè)插件可以在中文輸入時(shí),候選詞的位置跟隨光標(biāo)  

*** 

### ----Sass語(yǔ)法高亮----  
![](http://upload-images.jianshu.io/upload_images/1608970-59f458c8c7d56712.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> Sass語(yǔ)法高亮
安裝完之后材蛛,如果右下角沒(méi)有改成sass就手動(dòng)把它該過(guò)來(lái)吧
![](http://upload-images.jianshu.io/upload_images/1608970-74595897e0dd9a48.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

1. Backet HighLight  
![](http://upload-images.jianshu.io/upload_images/1608970-2229d7973780e933.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 這個(gè)插件可以高亮引號(hào)史飞、括號(hào)等**  
![](http://upload-images.jianshu.io/upload_images/1608970-291c5f563513eb4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**注:要有效果,需要配置該插件的配置文件仰税,**    
其配置文件(Backet Setting-User)如下:  

{
//Debug logging
"debug_enable": false,

// When only either the left or right bracket can be found
// this defines if the unmatched bracket should be shown.
"show_unmatched": true,

// Do the opposite of "show_unmatched" for the languages listed below
"show_unmatched_exceptions": [],

// Enable high visibility by default when sublime starts up
// If sublime is already running and this gets changed,
// you will not see any changes (restart required to see change)
"high_visibility_enabled_by_default": false,

// Experimental: Creates a visible bar at the beginning of all lines between
// multiline bracket spans.
"content_highlight_bar": false,

// Experimental: Align the content highlight bar at the bracket indent level
"align_content_highlight_bar": false,

// Show brackets in the minimap.
// Depending on your highlight style, regions may not be visible in minimap.
// "underline" won't show up due to it being a style consisting of
// multiple zero width selections to create a fat underline.
// But the following styles should show up fine as they are normal regions styles:
//     - thin_underline
//     - solid
//     - outline
//     - squiggly
//     - stippled
"show_in_minimap": false,

// High visibility style and color for high visibility mode
// (solid|outline|underline)
// ST3 has additional options of (thin_underline|squiggly|stippled)
"high_visibility_style": "outline",

// (scope|__default__|__bracket__)
"high_visibility_color": "__bracket__",

// Match brackets only when the cursor is touching the inside of the bracket
"match_only_adjacent": false,

// Outside adjacent bracket matching
"bracket_outside_adjacent": true,

// EXPERIMENTAL: Special matching mode for block cursor.
// Essentially, this provides a matching mode that makes a little more
// sense to some in regards to the visual representation of block cursors.
// This will ignore "bracket_outside_adjacent".
"block_cursor_mode": false,

// When "bracket_outside_adjacet" is set, and a plugin command explicitly sets
// "no_outside_adj" to "None" instead of "true" or the default "false",
// this value will be used.
"ignore_outside_adjacent_in_plugin": true,

// When "block_cursor_mode" is set, and a plugin command explicitly sets
// "no_block_mode" to "None" instead of "true" or the default "false",
// this value will be used.
"ignore_block_mode_in_plugin": true,

// Character threshold to search
"search_threshold": 5000,

// Ignore threshold
"ignore_threshold": false,

// Set mode for string escapes to ignore (regex|string)
"bracket_string_escape_mode": "string",

// Set max number of multi-select brackets that will be searched automatically
"auto_selection_threshold" : 10,

// Enable this to completely kill highlighting if "auto_selection_threshold"
// is exceeded.  Default is to highlight up to the "auto_selection_threshold".
"kill_highlight_on_threshold": true,

// Disable gutter icons when doing multi-select
"no_multi_select_icons": false,

// Rules that define the finding and matching of brackets
// that are contained in a common scope.
// Useful for bracket pairs that are the same but
// share a common scope.  Brackets are found by
// Finding the extent of the scope and using regex
// to look at the beginning and end to identify bracket.
// Use only if they cannot be targeted with traditional bracket
// rules.
"scope_brackets": [
    // Quotes
    {
        "name": "py_single_quote",
        "open": "(?:u|b)?r?((?:'')?')",
        "close": "((?:'')?')",
        "style": "single_quote",
        "scopes": ["string"],
        "language_filter": "whitelist",
        "language_list": [
            "Python",
            "PythonImproved",
            "MagicPython"
        ],
        "sub_bracket_search": "true",
        "plugin_library": "bh_modules.pyquotes",
        "enabled": true
    },
    {
        "name": "py_double_quote",
        "open": "(?:u|b)?r?((?:\"\")?\")",
        "close": "((?:\"\")?\")",
        "style": "double_quote",
        "scopes": ["string"],
        "language_filter": "whitelist",
        "language_list": [
            "Python",
            "PythonImproved",
            "MagicPython"
        ],
        "sub_bracket_search": "true",
        "plugin_library": "bh_modules.pyquotes",
        "enabled": true
    },
    {
        "name": "single_quote",
        "open": "(')",
        "close": "(')",
        "style": "single_quote",
        "scopes": ["string", "string.quoted"],
        "language_filter": "blacklist",
        "language_list": ["Plain text", "Hex"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    {
        "name": "double_quote",
        "open": "(\")",
        "close": "(\")",
        "style": "double_quote",
        "scopes": ["string", "string.quoted"],
        "language_filter": "blacklist",
        "language_list": ["Plain text", "Hex"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    // Regex for different Languages
    {
        "name": "jsregex",
        "open": " *(/)",
        "close": "(/)[igm]*",
        "style": "regex",
        "scopes": ["string"],
        "language_filter": "whitelist",
        "language_list": ["JavaScript"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    {
        "name": "perlregex",
        "open": "(?:m|s|tr)(.|\n)",
        "close": "(.|\n)(?:[igmos]*)",
        "style": "regex",
        "scopes": ["string.regexp"],
        "language_filter": "whitelist",
        "language_list": ["Perl"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    {
        "name": "rubyregex",
        "open": " *(/)",
        "close": "(/)[imxo]*",
        "style": "regex",
        "scopes": ["string"],
        "language_filter": "whitelist",
        "language_list": ["Ruby", "RSpec", "Better RSpec"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    // Markdown
    {
        "name": "mditalic",
        "open": "(\\*|_)",
        "close": "(\\*|_)",
        "style": "default",
        "scopes": ["markup.italic"],
        "language_filter": "whitelist",
        "language_list": ["Markdown", "Multimarkdown", "GithubFlavoredMarkdown"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    {
        "name": "mdbold",
        "open": "(\\*\\*|__)",
        "close": "(\\*\\*|__)",
        "style": "default",
        "scopes": ["markup.bold"],
        "language_filter": "whitelist",
        "language_list": ["Markdown", "Multimarkdown", "GithubFlavoredMarkdown"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    {
        "name": "mdcodeinline",
        "open": "(`+)",
        "close": "(`+)",
        "style": "default",
        "scopes": ["markup.raw.inline.markdown"],
        "language_filter": "whitelist",
        "language_list": ["Markdown", "Multimarkdown", "GithubFlavoredMarkdown"],
        "sub_bracket_search": "true",
        "plugin_library": "bh_modules.mdcode",
        "enabled": true
    },
    {
        "name": "mdcodeblock",
        "open": "\\s*(`{3,}|~{3,})",
        "close": "(`{3,}|~{3,})\\n?",
        "style": "default",
        "scopes": ["markup.raw.block.fenced.markdown, markup.raw.block.markdown.fenced"],
        "language_filter": "whitelist",
        "language_list": ["Markdown", "Multimarkdown", "GithubFlavoredMarkdown"],
        "plugin_library": "bh_modules.mdcode",
        "sub_bracket_search": "true",
        "enabled": true
    },
    // LaTeX
    {
        "name": "latexmath_inline",
        "open": "(\\$)",
        "close": "(\\$)",
        "style": "default",
        "scopes": ["string.other.math.tex"],
        "language_filter": "whitelist",
        "language_list": ["LaTeX", "LaTeX (TikZ)", "knitr (Rnw)"],
        "sub_bracket_search": "true",
        "enabled": true
    }
],

// Rule definitions for finding and matching brackets.
// Brackets are found by using regex and can use scope
// qualifiers exclude certain matches.
// Once all matches are found, the closest pair surrounding
// the cursor are selected.
"brackets": [
    // Basic brackets
    {
        "name": "curly",
        "open": "(\\{)",
        "close": "(\\})",
        "style": "curly",
        "scope_exclude": ["string", "comment", "source.yaml-tmlanguage constant.character.escape"],
        "scope_exclude_exceptions": ["text.tex string.other.math"],
        "language_filter": "blacklist",
        "language_list": ["Plain text", "Hex"],
        "find_in_sub_search": "true",
        "ignore_string_escape": true,
        "enabled": true
    },
    {
        "name": "round",
        "open": "(\\()",
        "close": "(\\))",
        "style": "round",
        "scope_exclude_exceptions": [
            "text.tex string.other.math",
            "punctuation.definition.string.begin.shell",
            "punctuation.definition.string.end.shell"
        ],
        "scope_exclude": [
            "string",
            "comment",
            "punctuation.definition.case-pattern.shell",
            "source.yaml-tmlanguage constant.character.escape"
        ],
        "language_filter": "blacklist",
        "language_list": ["Plain text", "Hex", "RTF"],
        "find_in_sub_search": "true",
        "ignore_string_escape": true,
        "enabled": true
    },
    {
        "name": "square",
        "open": "(\\[)",
        "close": "(\\])",
        "style": "square",
        "scope_exclude": ["string", "comment"],
        "scope_exclude_exceptions": ["text.tex string.other.math", "source.yaml-tmlanguage meta.value -constant.character.escape"],
        "language_filter": "blacklist",
        "language_list": ["Plain text", "Hex", "RTF"],
        "find_in_sub_search": "true",
        "ignore_string_escape": true,
        "enabled": true
    },
    // PHP Angle
    {
        "name": "php_angle",
        "open": "(<\\?)(?:php)?",
        "close": "(\\?>)",
        "style": "angle",
        "scope_exclude": ["string", "comment", "keyword.operator"],
        "language_filter": "whitelist",
        "language_list": ["HTML", "HTML 5"],
        "enabled": true
    },
    // Angle
    {
        "name": "angle",
        "open": "(<)(?=[^?%]|$)",
        "close": "(?:(?<=[^?%])|(?<=^))(>)",
        "style": "angle",
        "scope_exclude": [
            "string",
            "comment",
            "keyword.operator",
            "source.ruby.rails.embedded.html",
            "source.ruby.embedded.html"
        ],
        "language_filter": "whitelist",
        "language_list": [
            "HTML",
            "HTML 5",
            "XML",
            "PHP",
            "HTML (Rails)",
            "HTML (Jinja Templates)",
            "HTML (Twig)",
            "HTML (Django)",
            "HTML+CFML",
            "ColdFusion",
            "ColdFusionCFC",
            "laravel-blade",
            "Handlebars",
            "AngularJS",
            "Java Server Pages (JSP)"
        ],
        "plugin_library": "bh_modules.tags",
        "enabled": true
    },
    // CSSedit groups
    {
        "name": "cssedit_groups",
        "open": "(/\\* *@group .*\\*/)",
        "close": "(/\\* *@end *\\*/)",
        "style": "default",
        "scope_exclude": [],
        "language_filter": "whitelist",
        "language_list": ["CSS"],
        "enabled": true
    },
    // Ruby embedded HTML
    {
        "name": "ruby_embedded_html",
        "open": "((?:(?<=<%)|(?<=^)|(?<==)|(?<=<<))\\s*\\b(?:if|begin|case)\\b(?!:)|(?:(?<=<%)|(?<=^))\\s*\\b(?:for|until|unless|while|class|module|def\\b[\\p{Ll}\\p{Lu}]*)\\b(?!:)|(?<!:)\\bdo\\b(?!:))",
        "close": "(?<=[\\s;])(end)\\b(?!:)",
        "style": "default",
        "scope_exclude": ["text.html", "source", "comment", "string"],
        "scope_exclude_exceptions": [
            "source.ruby.rails.embedded.html",
            "source.ruby.embedded.html"
        ],
        "plugin_library": "bh_modules.rubykeywords",
        "language_filter": "whitelist",
        "language_list": ["HTML", "HTML 5", "PHP", "HTML (Rails)"],
        "enabled": true
    },
    // Ruby conditional statements
    {
        "name": "ruby",
        "open": "((?:(?<=^)|(?<==)|(?<=<<))\\s*\\b(?:if|begin|case)\\b(?!:)|^\\s*\\b(?:for|until|unless|while|class|module|def\\b[\\p{Ll}\\p{Lu}]*)\\b(?!:)|(?<!:)\\bdo\\b(?!:))",
        "close": "(?<=[\\s;])(end)\\b(?!:)",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "plugin_library": "bh_modules.rubykeywords",
        "language_filter": "whitelist",
        "language_list": ["Ruby", "RSpec", "Better RSpec", "Ruby on Rails"],
        "enabled": true
    },
    // C/C++ compile switches
    {
        "name": "c_compile_switch",
        "open": "(\\#(?:if|ifdef|ifndef))\\b",
        "close": "(\\#endif)\\b",
        "style": "c_define",
        "scope_exclude": ["string", "comment"],
        "language_filter": "whitelist",
        "language_list": ["C++", "C", "Objective-C", "CCpp", "C Improved"],
        "enabled": true
    },
    // PHP conditional keywords
    {
        "name": "php_keywords",
        "open": "(?:^\\s*|<\\?(?:php)?\\s*)?\\b(if|foreach|for|while|switch)\\b(?=.*:\\s*(?:\\?>\\s*)?$)",
        "close": "(?:^\\s*|<\\?(?:php)?\\s*)?\\b(endif|endfor|endforeach|endwhile|endswitch)\\b(?=\\s*;\\s*(?:\\?>\\s*)?$)",
        "style": "default",
        "language_filter": "whitelist",
        "scope_exclude": ["string", "comment"],
        "plugin_library": "bh_modules.phpkeywords",
        "language_list": [
            "HTML",
            "HTML 5",
            "XML",
            "PHP",
            "HTML+CFML",
            "ColdFusion",
            "ColdFusionCFC"
        ],
        "enabled": true
    },
    // Erlang conditional statements
    {
        "name": "erlang",
        "open": "\\s*(\\b(?:if|case|begin|try|fun(?=\\s*\\()|receive)\\b)",
        "close": "\\b(end)\\b",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "language_filter": "whitelist",
        "plugin_library": "bh_modules.lowercase",
        "language_list": ["Erlang", "HTML (Erlang)"],
        "enabled": true
    },
    //Bash
    {
        "name": "bash",
        "open": "(?:(?<!\\\\\\n)(?:;|^|&|\\|)\\s*)\\b(if|case|while|select|until|for)\\s",
        "close": "(?:(?<!\\\\\\n)(?:;|^)\\s*)\\b(fi|esac|done)(?=;|\\s|$)",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "plugin_library": "bh_modules.bashsupport",
        "language_filter": "whitelist",
        "language_list": ["Shell-Unix-Generic"],
        "enabled": true
    },
    //Fish shell
    {
        "name": "fish",
        "open": "(?:(?<!\\\\\\n)(?:;|^|&|\\||and|or|not)\\s*)\\b(begin|if|while|for|switch|function)(?:;|\\s)",
        "close": "(?:(?<!\\\\\\n)(?:;|^)\\s*)\\b(end)(?=;|\\s|$)",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "language_filter": "whitelist",
        "language_list": ["fish"],
        "enabled": true
    },
    // Lua
    {
        "name": "lua",
        "open": "(?<=[\\s;])(if|while|function|do|repeat)\\b",
        "close": "(?<=[\\s;])(end|until)\\b",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "plugin_library": "bh_modules.luakeywords",
        "language_filter": "whitelist",
        "language_list": ["Lua"],
        "enabled": true
    },
    // LaTeX
    {
        "name": "latexenv",
        "open": "(\\\\begin{[^}]*})",
        "close": "(\\\\end{[^}]*})",
        "style": "tag",
        "scope_exclude": ["comment"],
        "plugin_library": "bh_modules.latexenvironments",
        "language_filter": "whitelist",
        "language_list": ["LaTeX", "LaTeX (TikZ)", "knitr (Rnw)"],
        "sub_bracket_search": "true",
        "enabled": true
    },
    // Pascal
    {
        "name": "pascal",
        "open": "(?:(?<=^)|(?<=[\\s;]))(try|(?<=\\=\\s)(?:class|record|interface)|begin|repeat)\\b",
        "close": "(?<=[\\s;])(end(?=[;\\s])|until(?=\\s))",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "plugin_library": "bh_modules.pascalkeywords",
        "language_filter": "whitelist",
        "language_list": ["Pascal"],
        "enabled": true
    },
    // Elixir
    {
        "name": "elixir",
        "open": "\\b(do$|fn)\\b",
        "close": "\\b(end)\\b",
        "style": "default",
        "scope_exclude": ["string", "comment"],
        "language_filter": "whitelist",
        "language_list": ["Elixir"],
        "enabled": true
    }
],

// user_scope_brackets and user_brackets will be appended
// to the tail of scope_brackets and brackets respectively
// If you have custom rules that you don't want to commit to
// the official list, and do not need to be inserted before
// one of the official definitions, this is a good place to
// put yours rules and keep in sync with the defaults.
"user_scope_brackets": [],
"user_brackets": [],

// Define region highlight styles
"bracket_styles": {
    // "default" and "unmatched" styles are special
    // styles. If they are not defined here,
    // they will be generated internally with
    // internal defaults.

    // "default" style defines attributes that
    // will be used for any style that does not
    // explicitly define that attribute.  So if
    // a style does not define a color, it will
    // use the color from the "default" style.
    "default": {
        "icon": "dot",
        // BH1's original default color for reference
        // "color": "entity.name.class",
        "color": "brackethighlighter.default",
        "style": "hightlight"
    },

    // This particular style is used to highlight
    // unmatched bracket pairs.  It is a special
    // style.
    "unmatched": {
        "icon": "question",
        "color": "brackethighlighter.unmatched",
        "style": "hightlight"
    },
    // User defined region styles
    "curly": {
        "icon": "curly_bracket",
        "color": "brackethighlighter.curly",
        "style": "hightlight"
    },
    "round": {
        "icon": "round_bracket",
        "color": "brackethighlighter.round",
        "style": "hightlight"
    },
    "square": {
        "icon": "square_bracket",
        "color": "brackethighlighter.square",
        "style": "hightlight"
    },
    "angle": {
        "icon": "angle_bracket",
        "color": "brackethighlighter.angle",
        "style": "hightlight"
    },
    "tag": {
        "icon": "tag",
        "color": "brackethighlighter.tag",
        "style": "underline"
    },
    "c_define": {
        "icon": "hash",
        "color": "brackethighlighter.c_define",
        "style": "hightlight"
    },
    "single_quote": {
        "icon": "single_quote",
        "color": "brackethighlighter.quote",
        "style": "hightlight"
    },
    "double_quote": {
        "icon": "double_quote",
        "color": "brackethighlighter.quote",
        "style": "hightlight"
    },
    "regex": {
        "icon": "regex",
        "color": "brackethighlighter.quote",
        "style": "hightlight"
    }
}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末构资,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子陨簇,更是在濱河造成了極大的恐慌吐绵,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件河绽,死亡現(xiàn)場(chǎng)離奇詭異己单,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)耙饰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)纹笼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人苟跪,你說(shuō)我怎么就攤上這事廷痘。” “怎么了件已?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵笋额,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我篷扩,道長(zhǎng)兄猩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮枢冤,結(jié)果婚禮上鸠姨,老公的妹妹穿的比我還像新娘。我一直安慰自己淹真,他們只是感情好讶迁,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著趟咆,像睡著了一般添瓷。 火紅的嫁衣襯著肌膚如雪梅屉。 梳的紋絲不亂的頭發(fā)上值纱,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音坯汤,去河邊找鬼虐唠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惰聂,可吹牛的內(nèi)容都是我干的疆偿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼搓幌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼杆故!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起溉愁,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤处铛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拐揭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體撤蟆,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年堂污,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了家肯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盟猖,死狀恐怖讨衣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情式镐,我是刑警寧澤值依,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站碟案,受9級(jí)特大地震影響愿险,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一辆亏、第九天 我趴在偏房一處隱蔽的房頂上張望风秤。 院中可真熱鬧,春花似錦扮叨、人聲如沸缤弦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碍沐。三九已至,卻和暖如春衷蜓,著一層夾襖步出監(jiān)牢的瞬間累提,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工磁浇, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留斋陪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓置吓,卻偏偏與公主長(zhǎng)得像无虚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衍锚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容