my___sublime Text配置

 

sublime text 备份

 

插件下载

http://www.cnblogs.com/457220157-FTD/p/5546545.html

 https://www.jianshu.com/p/3b6aa8e32be5

 

sublimeLinter 检查代码软件

https://segmentfault.com/a/1190000000389188 

 

themr 自动切换主题插件

可以下载predawn,过一会儿就会显示可以切换主题,ctrl + f5 

Boxy

主题查考

https://scotch.io/@Viclotana/the-10-best-sublime-text-3-themes-of-2017#conclusion

 

user配置

default的翻译

// While you can edit this file, it’s best to put your changes in
 // “User/Preferences.sublime-settings”, which overrides the settings in here.
 //
 // Settings may also be placed in file type specific options files, for
 // example, in Packages/Python/Python.sublime-settings for python files.
 {
 // Sets the colors used within the text area
 // 主题文件的路径
 “color_scheme”: “Packages/Color Scheme – Default/Monokai.tmTheme”,

// Note that the font_face and font_size are overriden in the platform
 // specific settings file, for example, “Preferences (Linux).sublime-settings”.
 // Because of this, setting them here will have no effect: you must set them
 // in your User File Preferences.
 // 设置字体和大小,必须在Settings-User里重写,这里设置没有任何效果
 “font_face”: “Consolas”,
 “font_size”: 12,

// Valid options are “no_bold”, “no_italic”, “no_antialias”, “gray_antialias”,
 // “subpixel_antialias” and “no_round” (OS X only)
 // 字体选项:no_bold不显示粗体字,no_italic不显示斜体字,no_antialias和no_antialias关闭反锯齿
 // subpixel_antialias和no_round是OS X系统独有的
 “font_options”: [],

// Characters that are considered to separate words
 // 在文字上双击会全选当前的内容,如果里面出现以下字符,就会被截断
 “word_separators”: “./\\()\”‘-:,.;<>~!@#$%^&*|+=[]{}`~?”,

// Set to false to prevent line numbers being drawn in the gutter
 // 是否显示行号
 “line_numbers”: true,

// Set to false to hide the gutter altogether
 // 是否显示行号边栏
 “gutter”: true,
 
// Spacing between the gutter and the text
 //行号边栏和文字的间距
 “margin”: 4,

// Fold buttons are the triangles shown in the gutter to fold regions of text
 // 是否显示代码折叠按钮
 “fold_buttons”: true,

// Hides the fold buttons unless the mouse is over the gutter
 // 不管鼠标在不在行号边栏,代码折叠按钮一直显示
 “fade_fold_buttons”: true,

// Columns in which to display vertical rulers
 //列显示垂直标尺,在中括号里填入数字,宽度按字符计算
 “rulers”: [],

// Set to true to turn spell checking on by default
 // 是否打开拼写检查
 “spell_check”: false,

// The number of spaces a tab is considered equal to
 // Tab键制表符宽度
 “tab_size”: 4,

// Set to true to insert spaces when tab is pressed
 // 设为true时,缩进和遇到Tab键时使用空格替代
 “translate_tabs_to_spaces”: false,

// If translate_tabs_to_spaces is true, use_tab_stops will make tab and
 // backspace insert/delete up to the next tabstop
 // translate_tabs_to_spaces设置为true,Tab和Backspace的删除/插入作用于制表符宽度
 // 否则作用于单个空格
 “use_tab_stops”: true,

// Set to false to disable detection of tabs vs. spaces on load
 // false时禁止在载入的时候检测制表符和空格
 “detect_indentation”: true,

// Calculates indentation automatically when pressing enter
 // 按回车时,自动与制表位对齐
 “auto_indent”: true,

// Makes auto indent a little smarter, e.g., by indenting the next line
 // after an if statement in C. Requires auto_indent to be enabled.
 //针对C语言的
 “smart_indent”: false,

// Adds whitespace up to the first open bracket when indenting. Requires
 // auto_indent to be enabled.
 // 需要启用auto_indent,第一次打开括号缩进时插入空格?(没测试出来效果…)
 “indent_to_bracket”: true,

// Trims white space added by auto_indent when moving the caret off the
 // line.
 // 显示对齐的白线是否根据回车、tab等操作自动填补
 “trim_automatic_white_space”: true,

// Disables horizontal scrolling if enabled.
 // May be set to true, false, or “auto”, where it will be disabled for
 // source code, and otherwise enabled.
 // 是否自动换行,如果选auto,需要加双引号
 “word_wrap”: false,

// Set to a value other than 0 to force wrapping at that column rather than the
 // window width
 // 设置窗口内文字区域的宽度
 “wrap_width”: 0,

// Set to false to prevent word wrapped lines from being indented to the same
 // level
 // 防止被缩进到同一级的字换行
 “indent_subsequent_lines”: true,

// Draws text centered in the window rather than left aligned
 // 如果没有定义过,则文件居中显示(比如新建的文件)
 “draw_centered”: false,

// Controls auto pairing of quotes, brackets etc
 // 自动匹配引号,括号等
 “auto_match_enabled”: true,

// Word list to use for spell checking
 // 拼写检查的单词列表路径
 “dictionary”: “Packages/Language – English/en_US.dic”,

// Set to true to draw a border around the visible rectangle on the minimap.
 // The color of the border will be determined by the “minimapBorder” key in
 // the color scheme
 // 代码地图的可视区域部分是否加上边框,边框的颜色可在配色方案上加入minimapBorder键
 “draw_minimap_border”: false,

// If enabled, will highlight any line with a caret
 // 突出显示当前光标所在的行
 “highlight_line”: false,

// Valid values are “smooth”, “phase”, “blink”, “wide” and “solid”.
 // 设置光标闪动方式
 “caret_style”: “smooth”,

// Set to false to disable underlining the brackets surrounding the caret
 // 是否特殊显示当前光标所在的括号、代码头尾闭合标记
 “match_brackets”: true,

// Set to false if you’d rather only highlight the brackets when the caret is
 // next to one
 // 设为false时,只有光标在括号或头尾闭合标记的两端时,match_brackets才生效
 “match_brackets_content”: true,

// Set to false to not highlight square brackets. This only takes effect if
 // match_brackets is true
 // 是否突出显示圆括号,match_brackets为true生效
 “match_brackets_square”: false,

// Set to false to not highlight curly brackets. This only takes effect if
 // match_brackets is true
 // 是否突出显示大括号,match_brackets为true生效
 “match_brackets_braces”: false,

// Set to false to not highlight angle brackets. This only takes effect if
 // match_brackets is true
 // 是否突出显示尖括号,match_brackets为true生效
 “match_brackets_angle”: false,

// Enable visualization of the matching tag in HTML and XML
 // html和xml下突出显示光标所在标签的两端,影响HTML、XML、CSS等
 “match_tags”: true,

// Highlights other occurrences of the currently selected text
 // 全文突出显示和当前选中字符相同的字符
 “match_selection”: true,

 // 设置每一行到顶部,以像素为单位的间距,效果相当于行距
 “line_padding_top”: 1,

 // 设置每一行到底部,以像素为单位的间距,效果相当于行距
 “line_padding_bottom”: 1,

 // 设置为false时,滚动到文本的最下方时,没有缓冲区
 “scroll_past_end”: true,

 // 控制向上或向下到第一行或最后一行时发生什么(没明白也没试出来)
 “move_to_limit_on_up_down”: false,

 // 按space或tab时,实际会产生白色的点(一个空格一个点)或白色的横线(tab_size设置的制表符的宽度),选中状态下才能看到
 // 设置为none时,什么情况下都不显示这些点和线
 // 设置为selection时,只显示选中状态下的点和线
 // 设置为all时,则一直显示
 “draw_white_space”: “selection”,

 // 制表位的对齐白线是否显示,颜色可在主题文件里设置(guide,activeGuide,stackGuide)
 “draw_indent_guides”: true,

 // 制表位的对齐白线,draw_normal为一直显示,draw_active为只显示当前光标所在的代码控制域
 “indent_guide_options”: ["draw_normal"],

 // 为true时,保存文件时会删除每行结束后多余的空格
 “trim_trailing_white_space_on_save”: false,

 // 为true时,保存文件时光标会在文件的最后向下换一行
 “ensure_newline_at_eof_on_save”: false,

 // 切换到其它文件标签或点击其它非本软件区域,文件自动保存
 “save_on_focus_lost”: false,

 // 编码时不能自动检测编码时,将自动检测ASCII, UTF-8 和 UTF-16
 “fallback_encoding”: “Western (Windows 1252)”,

 // 默认编码格式
 “default_encoding”: “UTF-8〃,

 // 包含空字节的文件被打开默认为十六进制
 “enable_hexadecimal_encoding”: true,

 // 每一行结束的时候用什么字符做终止符
 “default_line_ending”: “system”,

 // 设置为enabled时,在一个字符串间按Tab将插入一个制表符
 // 设置为true时,按Tab会根据前后环境进行代码自动匹配填补
 “tab_completion”: true,

 // 代码提示
 “auto_complete”: true,

 // 代码提示的大小限制
 “auto_complete_size_limit”: 4194304,

 // 代码提示延迟显示
 “auto_complete_delay”: 50,

 // 代码提示的控制范围
 “auto_complete_selector”: “source – comment”,

 // 触发代码提示的其他情况
 “auto_complete_triggers”: [ {"selector": "text.html", "characters": "<"} ],

 // 设为false时,选择提示的代码按回车或点击可以输出出来,但选择true时不会输出而是直接换行
 “auto_complete_commit_on_tab”: false,

 “auto_complete_with_fields”: false,

 // 设置为false,使用Shift + tab总是插入制表符
 “shift_tab_unindent”: true,

 // 选中的文本按Ctrl + f时,自动复制到查找面板的文本框里
 “find_selected_text”: true,
 
// Data\Packages\Theme – Default\Default.sublime-theme控制软件的主题
 “theme”: “Default.sublime-theme”,
 
 // 滚动的速度
 “scroll_speed”: 1.0,

 // 左边边栏文件夹动画
 “tree_animation_enabled”: true,

 // 标签页的关闭按钮
 “show_tab_close_buttons”: true,
// Valid values are “system”, “enabled” and “disabled”

 // 水平垂直滚动条:system和disabled为默认显示方式,enabled为自动隐藏显示
 “overlay_scroll_bars”: “system”,
 
 }
View Code

 

现在我用的user配置: 

ubuntu 2018-02-15 21:34:32  

{

    //在default那里的,如果你不重写,就默认是用default

    //这个是设置主题路径
    "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",

    //设置字体样式,需要显示的字体名字(请参照自己电脑存在的字体或下载安装需要的字体)
    "font_face": "YaHei Consolas Hybrid",
    //设置字体大小
    "font_size": 14,

    //是否打开拼写检查
    "spell_check": false,

    //tab键大小
    "tab_size": 4, 

    //设置是否自动匹配括号,引号之类的。
    "auto_match_enabled": false,

    //突出当前光标所在的行,待用
    "highlight_line": false,

    // Valid values are “smooth”, “phase”, “blink”, “wide” and “solid”.
    // 设置光标闪动方式
     "caret_style": "smooth", //还没测试出效果

     // 设置为enabled时,在一个字符串间按Tab将插入一个制表符
     //设置为true时,按Tab会根据前后环境进行代码自动匹配填补
     "tab_completion": "enabled", // 这个弄不了的???,这样的话,tab键编程了写html的

     //设置自动换行为false,自动换行就是那个,一行显示不完全,就自动跳去下一行。
     "word_wrap": false,

    // Display file encoding in the status bar
    "show_encoding":true,

    // Display line endings in the status bar
    "show_line_endings": true,

    //取消检查更新
    "update_check": false,

    //忽略掉的包,我不用vim这个包
    "ignored_packages": ["Vintage"]
}

 

 

"font_options": ["no_bold", "no_italic", "no_antialias", "gray_antialias",],
"font_size": 12,
"font_face": "YaHei Consolas Hybrid",

 

no_italic:不是斜体显示(也叫意大利字体样式显示);

no_antialias:无反图像失真或反锯齿显示;

gray_antialias";反图像灰度值失真显示;

以上参数去掉no_或不写入得相反效果;

font_size:字体的大小;

font_face;需要显示的字体名字(请参照自己电脑存在的字体或下载安装需要的字体)

 

 

 

快捷键配置  

2018-05-29 22:54:36

[
    //注释快捷键
    { "keys": ["ctrl+shift+c"], "command": "toggle_comment", "args": { "block": false } },

     //代码提示功能
    { "keys": ["ctrl+space"], "command": "auto_complete" },
    { "keys": ["ctrl+space"], "command": "replace_completion_with_auto_complete", "context":
        [
            { "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
            { "key": "auto_complete_visible", "operator": "equal", "operand": false },
            { "key": "setting.tab_completion", "operator": "equal", "operand": true }
        ]
    },

    // 运行文件
    { "keys": ["f9"], "command": "build" }, 

    //代码格式化
    { "keys": ["alt+f8"], "command": "reindent" }, 

    //打开跳去指定行的操作
   { "keys": ["ctrl+escape"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },    

   //
   { "keys": ["ctrl+shift+t"], "command": "reopen_last_file" },
   { "keys": ["ctrl+w"], "command": "close" },
   
   /*Terminal plug*/
    { "keys": ["ctrl+shift+o"], "command": "open_terminal_project_folder" },

    { "command": "add_info", "keys": ["ctrl+shift+."] },

    { "keys": ["ctrl+j"], "command": "jump_forward"},
    { "keys": ["ctrl+k"], "command": "jump_back"},

    { "keys": ["ctrl+d"], "command": "godef" },
    
    { "keys": ["ctrl+alt+i"], "command": "java_import_path" },    

    { "keys": ["ctrl+shift+r"], "command": "reveal_in_side_bar"},

    { "keys": "tab", "command": "insert", "args": {"characters": "\t"} },

    { "keys": ["f2"], "command": "rename_file", "args": { "paths": ["$file"] } }
]

 

 

[
    //注释快捷键
    { "keys": ["ctrl+shift+c"], "command": "toggle_comment", "args": { "block": false } },

     //代码提示功能
    { "keys": ["ctrl+space"], "command": "auto_complete" },
    { "keys": ["ctrl+space"], "command": "replace_completion_with_auto_complete", "context":
        [
            { "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
            { "key": "auto_complete_visible", "operator": "equal", "operand": false },
            { "key": "setting.tab_completion", "operator": "equal", "operand": true }
        ]
    },

    // 运行文件
    { "keys": ["f9"], "command": "build" }, 

    //代码格式化
    { "keys": ["alt+f8"], "command": "reindent" }, 

    //打开跳去指定行的操作
   { "keys": ["alt+`"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },    

    //这个是为了适合chrome,要明确写出来,不然被其他插件的defalut代替了。然后搜索的时候,按一个键就匹配去下一个的话,上面就搜索不了了  //也就是说不一定不存在这个命令,需要你一次性整一个复制进去搜索
   { "keys": ["ctrl+shift+t"], "command": "reopen_last_file" },
   { "keys": ["ctrl+w"], "command": "close" },
   
    /*Terminal plug*/
    { "keys": ["ctrl+shift+o"], "command": "open_terminal_project_folder" },

    //按下整个就生成注释,需要自己写一个插件的
    { "command": "add_info", "keys": ["ctrl+shift+."]},


    { "keys": ["ctrl+j"], "command": "jump_forward"},
    { "keys": ["ctrl+k"], "command": "jump_back"},

    
    { "keys": ["ctrl+d"], "command": "godef" },

    /*
On OS X, basic text manipulations (left, right, command+left, etc) make use of the system key bindings,
and don't need to be repeated here. Anything listed here will take precedence, however.
*/

    { "keys": ["ctrl+shift+n"], "command": "new_window" },
    { "keys": ["ctrl+shift+w"], "command": "close_window" },
    { "keys": ["ctrl+o"], "command": "prompt_open" },
    { "keys": ["ctrl+shift+t"], "command": "reopen_last_file" },
    { "keys": ["ctrl+alt+up"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "hh", "h", "ipp", "inl", "m", "mm"]} },
    { "keys": ["ctrl+n"], "command": "new_file" },
    { "keys": ["ctrl+s"], "command": "save" },
    { "keys": ["ctrl+shift+s"], "command": "prompt_save_as" },
    { "keys": ["ctrl+alt+s"], "command": "save_all" },
    { "keys": ["ctrl+w"], "command": "close" },

    { "keys": ["ctrl+ctrl+f"], "command": "toggle_full_screen" },
    { "keys": ["ctrl+ctrl+shift+f"], "command": "toggle_distraction_free" },

    { "keys": ["ctrl+z"], "command": "undo" },
    { "keys": ["ctrl+shift+z"], "command": "redo" },
    { "keys": ["ctrl+y"], "command": "redo_or_repeat" },
    { "keys": ["ctrl+u"], "command": "soft_undo" },
    { "keys": ["ctrl+shift+u"], "command": "soft_redo" },

    { "keys": ["ctrl+x"], "command": "cut" },
    { "keys": ["ctrl+c"], "command": "copy" },
    { "keys": ["ctrl+v"], "command": "paste" },
    { "keys": ["ctrl+shift+v"], "command": "paste_and_indent" },
    { "keys": ["ctrl+option+v"], "command": "paste_from_history" },

    { "keys": ["ctrl+alt+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
    { "keys": ["ctrl+alt+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
    { "keys": ["ctrl+alt+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
    { "keys": ["ctrl+alt+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },

    { "keys": ["ctrl+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
    { "keys": ["ctrl+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
    { "keys": ["ctrl+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
    { "keys": ["ctrl+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },

    { "keys": ["ctrl+alt+up"], "command": "scroll_lines", "args": {"amount": 1.0} },
    { "keys": ["ctrl+alt+down"], "command": "scroll_lines", "args": {"amount": -1.0} },

    { "keys": ["ctrl+shift+up"], "command": "select_lines", "args": {"forward": false} },
    { "keys": ["ctrl+shift+down"], "command": "select_lines", "args": {"forward": true} },

    { "keys": ["ctrl+shift+["], "command": "prev_view" },
    { "keys": ["ctrl+shift+]"], "command": "next_view" },
    { "keys": ["ctrl+alt+left"], "command": "prev_view" },
    { "keys": ["ctrl+alt+right"], "command": "next_view" },

    { "keys": ["ctrl+tab"], "command": "next_view_in_stack" },
    { "keys": ["ctrl+shift+tab"], "command": "prev_view_in_stack" },

    { "keys": ["ctrl+a"], "command": "select_all" },
    { "keys": ["ctrl+shift+l"], "command": "split_selection_into_lines" },
    { "keys": ["escape"], "command": "single_selection", "context":
        [
            { "key": "num_selections", "operator": "not_equal", "operand": 1 }
        ]
    },
    { "keys": ["escape"], "command": "clear_fields", "context":
        [
            { "key": "has_next_field", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["escape"], "command": "clear_fields", "context":
        [
            { "key": "has_prev_field", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["escape"], "command": "hide_panel", "args": {"cancel": true},
        "context":
        [
            { "key": "panel_visible", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["escape"], "command": "hide_overlay", "context":
        [
            { "key": "overlay_visible", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["escape"], "command": "hide_popup", "context":
        [
            { "key": "popup_visible", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["escape"], "command": "hide_auto_complete", "context":
        [
            { "key": "auto_complete_visible", "operator": "equal", "operand": true }
        ]
    },

    { "keys": ["ctrl+]"], "command": "indent" },
    { "keys": ["ctrl+["], "command": "unindent" },

    { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
    { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
        "context":
        [
            { "key": "setting.tab_completion", "operator": "equal", "operand": true },
            { "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
        ]
    },
    { "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
        [
            { "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
            { "key": "setting.tab_completion", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["tab"], "command": "reindent", "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
            { "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
        ]
    },
    { "keys": ["tab"], "command": "indent", "context":
        [
            { "key": "text", "operator": "regex_contains", "operand": "\n" }
        ]
    },
    { "keys": ["tab"], "command": "next_field", "context":
        [
            { "key": "has_next_field", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["tab"], "command": "commit_completion", "context":
        [
            { "key": "auto_complete_visible" },
            { "key": "setting.auto_complete_commit_on_tab" }
        ]
    },

    { "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
    { "keys": ["shift+tab"], "command": "unindent", "context":
        [
            { "key": "setting.shift_tab_unindent", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["shift+tab"], "command": "unindent", "context":
        [
            { "key": "preceding_text", "operator": "regex_match", "operand": "^[\t ]*" }
        ]
    },
    { "keys": ["shift+tab"], "command": "unindent", "context":
        [
            { "key": "text", "operator": "regex_contains", "operand": "\n" }
        ]
    },
    { "keys": ["shift+tab"], "command": "prev_field", "context":
        [
            { "key": "has_prev_field", "operator": "equal", "operand": true }
        ]
    },

    { "keys": ["ctrl+l"], "command": "expand_selection", "args": {"to": "line"} },

    { "keys": ["ctrl+shift+space"], "command": "expand_selection", "args": {"to": "scope"} },
    { "keys": ["ctrl+shift+m"], "command": "expand_selection", "args": {"to": "brackets"} },
    { "keys": ["ctrl+m"], "command": "move_to", "args": {"to": "brackets"} },
    { "keys": ["ctrl+shift+j"], "command": "expand_selection", "args": {"to": "indentation"} },
    { "keys": ["ctrl+shift+a"], "command": "expand_selection", "args": {"to": "tag"} },

    { "keys": ["ctrl+alt+."], "command": "close_tag" },

    { "keys": ["ctrl+q"], "command": "toggle_record_macro" },
    { "keys": ["ctrl+shift+q"], "command": "run_macro" },

    { "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
    { "keys": ["ctrl+shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line Before.sublime-macro"} },
    { "keys": ["enter"], "command": "commit_completion", "context":
        [
            { "key": "auto_complete_visible" },
            { "key": "setting.auto_complete_commit_on_tab", "operand": false }
        ]
    },

    { "keys": ["ctrl+t"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
    { "keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
    { "keys": ["ctrl+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} },
    { "keys": ["ctrl+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
    { "keys": ["f12"], "command": "goto_definition" },
    { "keys": ["ctrl+alt+down"], "command": "goto_definition" },
    { "keys": ["ctrl+shift+r"], "command": "goto_symbol_in_project" },
    { "keys": ["ctrl+minus"], "command": "jump_back" },
    { "keys": ["ctrl+shift+minus"], "command": "jump_forward" },

    { "keys": ["ctrl+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": false} },
    { "keys": ["ctrl+shift+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": true} },
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "find", "reverse": false} },
    { "keys": ["ctrl+alt+f"], "command": "show_panel", "args": {"panel": "replace", "reverse": false} },
    { "keys": ["ctrl+alt+e"], "command": "replace_next" },
    { "keys": ["ctrl+g"], "command": "find_next" },
    { "keys": ["ctrl+shift+g"], "command": "find_prev" },
    { "keys": ["ctrl+e"], "command": "slurp_find_string" },
    { "keys": ["ctrl+shift+e"], "command": "slurp_replace_string" },

    { "keys": ["alt+ctrl+g"], "command": "find_under" },
    { "keys": ["shift+alt+ctrl+g"], "command": "find_under_prev" },
    { "keys": ["ctrl+ctrl+g"], "command": "find_all_under" },

    { "keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
    { "keys": ["f4"], "command": "next_result" },
    { "keys": ["shift+f4"], "command": "prev_result" },

    { "keys": ["f6"], "command": "toggle_setting", "args": {"setting": "spell_check"} },
    { "keys": ["ctrl+f6"], "command": "next_misspelling" },
    { "keys": ["ctrl+shift+f6"], "command": "prev_misspelling" },

    { "keys": ["ctrl+ctrl+up"], "command": "swap_line_up" },
    { "keys": ["ctrl+ctrl+down"], "command": "swap_line_down" },

    { "keys": ["ctrl+backspace"], "command": "delete_word", "args": { "forward": false, "sub_words": true } },
    { "keys": ["ctrl+delete"], "command": "delete_word", "args": { "forward": true, "sub_words": true } },

    { "keys": ["ctrl+forward_slash"], "command": "toggle_comment", "args": { "block": false } },
    { "keys": ["ctrl+alt+forward_slash"], "command": "toggle_comment", "args": { "block": true } },

    { "keys": ["ctrl+shift+d"], "command": "duplicate_line" },

    { "keys": ["ctrl+backquote"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },

    { "keys": ["ctrl+space"], "command": "auto_complete" },
    { "keys": ["ctrl+space"], "command": "replace_completion_with_auto_complete", "context":
        [
            { "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
            { "key": "auto_complete_visible", "operator": "equal", "operand": false },
            { "key": "setting.tab_completion", "operator": "equal", "operand": true }
        ]
    },

    { "keys": ["ctrl+alt+p"], "command": "show_scope_name" },
    { "keys": ["ctrl+shift+p"], "command": "show_scope_name" },

    { "keys": ["f7"], "command": "build" },
    { "keys": ["ctrl+b"], "command": "build" },
    { "keys": ["ctrl+shift+b"], "command": "build", "args": {"select": true} },

    

    { "keys": ["ctrl+t"], "command": "transpose" },

    { "keys": ["f5"], "command": "sort_lines", "args": {"case_sensitive": false} },
    { "keys": ["ctrl+f5"], "command": "sort_lines", "args": {"case_sensitive": true} },

    // Auto-pair quotes
    { "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"$0\""}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
            { "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true }
        ]
    },
    { "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"${0:$SELECTION}\""}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
        ]
    },
    { "keys": ["\""], "command": "move", "args": {"by": "characters", "forward": true}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
            { "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
        ]
    },
    { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "\"$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
            { "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
        ]
    },

    // Auto-pair single quotes
    { "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0'"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
            { "key": "preceding_text", "operator": "not_regex_contains", "operand": "['a-zA-Z0-9_]$", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true }
        ]
    },
    { "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'${0:$SELECTION}'"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
        ]
    },
    { "keys": ["'"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true },
            { "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
        ]
    },
    { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "'$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true },
            { "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
            { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
        ]
    },

    // Auto-pair brackets
    { "keys": ["("], "command": "insert_snippet", "args": {"contents": "($0)"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
        ]
    },
    { "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
        ]
    },
    { "keys": [")"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
        ]
    },
    { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
        ]
    },

    // Auto-pair square brackets
    { "keys": ["["], "command": "insert_snippet", "args": {"contents": "[$0]"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
        ]
    },
    { "keys": ["["], "command": "insert_snippet", "args": {"contents": "[${0:$SELECTION}]"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
        ]
    },
    { "keys": ["]"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
        ]
    },
    { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "\\[$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
        ]
    },

    // Auto-pair curly brackets
    { "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{$0}"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|$)", "match_all": true }
        ]
    },
    { "keys": ["{"], "command": "wrap_block", "args": {"begin": "{", "end": "}"}, "context":
        [
            { "key": "indented_block", "match_all": true },
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true },
        ]
    },
    { "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{${0:$SELECTION}}"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
        ]
    },
    { "keys": ["}"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
        ]
    },
    { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
        ]
    },

    { "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
        ]
    },
    { "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
        ]
    },

    { "keys": ["enter"], "command": "auto_indent_tag", "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
        ]
    },
    { "keys": ["shift+enter"], "command": "auto_indent_tag", "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
        ]
    },

    {
        "keys": ["ctrl+alt+1"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+2"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.5, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+3"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.33, 0.66, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+4"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.25, 0.5, 0.75, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1], [3, 0, 4, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+shift+2"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 1.0],
            "rows": [0.0, 0.5, 1.0],
            "cells": [[0, 0, 1, 1], [0, 1, 1, 2]]
        }
    },
    {
        "keys": ["ctrl+alt+shift+3"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 1.0],
            "rows": [0.0, 0.33, 0.66, 1.0],
            "cells": [[0, 0, 1, 1], [0, 1, 1, 2], [0, 2, 1, 3]]
        }
    },
    {
        "keys": ["ctrl+alt+5"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.5, 1.0],
            "rows": [0.0, 0.5, 1.0],
            "cells":
            [
                [0, 0, 1, 1], [1, 0, 2, 1],
                [0, 1, 1, 2], [1, 1, 2, 2]
            ]
        }
    },
    { "keys": ["ctrl+1"], "command": "focus_group", "args": { "group": 0 } },
    { "keys": ["ctrl+2"], "command": "focus_group", "args": { "group": 1 } },
    { "keys": ["ctrl+3"], "command": "focus_group", "args": { "group": 2 } },
    { "keys": ["ctrl+4"], "command": "focus_group", "args": { "group": 3 } },
    { "keys": ["ctrl+5"], "command": "focus_group", "args": { "group": 4 } },
    { "keys": ["ctrl+6"], "command": "focus_group", "args": { "group": 5 } },
    { "keys": ["ctrl+7"], "command": "focus_group", "args": { "group": 6 } },
    { "keys": ["ctrl+8"], "command": "focus_group", "args": { "group": 7 } },
    { "keys": ["ctrl+9"], "command": "focus_group", "args": { "group": 8 } },
    { "keys": ["ctrl+shift+1"], "command": "move_to_group", "args": { "group": 0 } },
    { "keys": ["ctrl+shift+2"], "command": "move_to_group", "args": { "group": 1 } },
    { "keys": ["ctrl+shift+3"], "command": "move_to_group", "args": { "group": 2 } },
    { "keys": ["ctrl+shift+4"], "command": "move_to_group", "args": { "group": 3 } },
    { "keys": ["ctrl+shift+5"], "command": "move_to_group", "args": { "group": 4 } },
    { "keys": ["ctrl+shift+6"], "command": "move_to_group", "args": { "group": 5 } },
    { "keys": ["ctrl+shift+7"], "command": "move_to_group", "args": { "group": 6 } },
    { "keys": ["ctrl+shift+8"], "command": "move_to_group", "args": { "group": 7 } },
    { "keys": ["ctrl+shift+9"], "command": "move_to_group", "args": { "group": 8 } },
    { "keys": ["ctrl+0"], "command": "focus_side_bar" },


    { "keys": ["ctrl+1"], "command": "select_by_index", "args": { "index": 0 } },
    { "keys": ["ctrl+2"], "command": "select_by_index", "args": { "index": 1 } },
    { "keys": ["ctrl+3"], "command": "select_by_index", "args": { "index": 2 } },
    { "keys": ["ctrl+4"], "command": "select_by_index", "args": { "index": 3 } },
    { "keys": ["ctrl+5"], "command": "select_by_index", "args": { "index": 4 } },
    { "keys": ["ctrl+6"], "command": "select_by_index", "args": { "index": 5 } },
    { "keys": ["ctrl+7"], "command": "select_by_index", "args": { "index": 6 } },
    { "keys": ["ctrl+8"], "command": "select_by_index", "args": { "index": 7 } },
    { "keys": ["ctrl+9"], "command": "select_by_index", "args": { "index": 8 } },
    { "keys": ["ctrl+0"], "command": "select_by_index", "args": { "index": 9 } },

    { "keys": ["f2"], "command": "next_bookmark" },
    { "keys": ["shift+f2"], "command": "prev_bookmark" },
    { "keys": ["ctrl+f2"], "command": "toggle_bookmark" },
    { "keys": ["ctrl+shift+f2"], "command": "clear_bookmarks" },
    { "keys": ["alt+f2"], "command": "select_all_bookmarks" },

    { "keys": ["ctrl+r"], "command": "next_bookmark" },
    { "keys": ["ctrl+shift+r"], "command": "toggle_bookmark" },


    { "keys": ["ctrl+equals"], "command": "increase_font_size" },
    { "keys": ["ctrl+plus"], "command": "increase_font_size" },
    { "keys": ["ctrl+minus"], "command": "decrease_font_size" },

    { "keys": ["ctrl+shift+w"], "command": "insert_snippet", "args": { "name": "Packages/XML/Snippets/long-tag.sublime-snippet" } },

    { "keys": ["ctrl+shift+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },

    { "keys": ["ctrl+alt+q"], "command": "wrap_lines" },

    { "keys": ["ctrl+alt+["], "command": "fold" },
    { "keys": ["ctrl+alt+]"], "command": "unfold" },

    { "keys": ["ctrl+alt+o"], "command": "toggle_overwrite" },

    { "keys": ["alt+f2"], "command": "context_menu" },

    { "keys": ["ctrl+alt+c"], "command": "toggle_case_sensitive", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+alt+r"], "command": "toggle_regex", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+alt+w"], "command": "toggle_whole_word", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+alt+a"], "command": "toggle_preserve_case", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },

    // Find panel key bindings
    { "keys": ["enter"], "command": "find_next", "context":
        [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["shift+enter"], "command": "find_prev", "context":
        [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
         "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
    },

    // Replace panel key bindings
    { "keys": ["enter"], "command": "find_next", "context":
        [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["shift+enter"], "command": "find_prev", "context":
        [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
        "context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["ctrl+alt+enter"], "command": "replace_all", "args": {"close_panel": true},
         "context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
    },

    // Incremental find panel key bindings
    { "keys": ["enter"], "command": "hide_panel", "context":
        [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["shift+enter"], "command": "find_prev", "context":
        [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
        "context": [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
    },

    // Find in Files panel key bindings
    { "keys": ["alt+enter"], "command": "find_all",
         "context": [{"key": "panel", "operand": "find_in_files"}, {"key": "panel_has_focus"}]
    },
    { "keys": ["ctrl+alt+enter"], "command": "replace_all",
         "context": [{"key": "panel", "operand": "find_in_files"}, {"key": "panel_has_focus"}]
    },

    { "keys": ["ctrl+,"], "command": "edit_settings", "args":
        {
            "base_file": "${packages}/Default/Preferences.sublime-settings",
            "default": "// Settings in here override those in \"Default/Preferences.sublime-settings\",\n// and are overridden in turn by syntax-specific settings.\n{\n\t$0\n}\n"
        }
    },

    // These are OS X built in commands, and don't need to be listed here, but
    // doing so lets them show up in the menu
    { "keys": ["ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
    // ctrl+delete isn't a built in command, but makes sense anyway
    { "keys": ["ctrl+delete"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },

    { "keys": ["ctrl+l"], "command": "show_at_center" },
    { "keys": ["ctrl+o"], "command": "insert_snippet", "args": { "contents": "$0\n" } },
    // { "keys": ["ctrl+ctrl+d"], "command": "noop" },
    { "keys": ["ctrl+ctrl+shift+d"], "command": "noop" },

    // HTML, XML close tag
    { "keys": ["/"], "command": "close_tag", "args": { "insert_slash": true }, "context":
        [
            { "key": "selector", "operator": "equal", "operand": "(text.html, text.xml) - string - comment", "match_all": true },
            { "key": "preceding_text", "operator": "regex_match", "operand": ".*<$", "match_all": true },
            { "key": "setting.auto_close_tags" }
        ]
    }
]
View Code

 

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------- 

 

常用快捷键

1、把窗口变成两个:按alt+shift+2即可,或者利用菜单,view->layout->,选一个即可。

2、输入文件名,然后打开指定文件,ctrl + p 

3、替换变量,ctrl + h,然后全部 替换就是ctrl + alt + p

4、跳转到某一行,ctrl + g

5、输入变量,跳转到哪里,ctrl + ;,就是冒号哪里

6、编辑多行, 选中多行,然后ctrl+shift+L

 

 

 

GCC中在cmd中打开,输入数据:https://zhidao.baidu.com/question/1047649305255045859.html

 

 

 

附录:sublime text中配置golang开发环境。

1、安装完golang后,如果不手动配GOPATH, GOBIN,GOROOT之类的东西,可以考虑插件goSublime

gosublime是一个插件

安装好GoSublime之后,如果你的环境变量GOPATH、GOPATH等没有设置好,或者要使用一个不一样的配置,可以打开Preferences -> Package Settings -> GoSublime -> Settings - user,按照下面的格式,填写你的配置内容: 

首先,你的项目应该是这样的(建立在你的GOPATH/src),项目名:(src,pkg,bin),代码放在src上。

然后要在GOPATH中设置好路径,改成:

 

{
    "env": {
        "GOROOT" : "/usr/lib/go-1.9",
         "GOBIN" : "/usr/lib/go-1.9/GOPATH/bin",
         "GOPATH" : "/usr/lib/go-1.9/GOPATH",
    },

    "fmt_cmd": ["/usr/lib/go-1.9/GOPATH/bin/goimports"], //这个是go的包自动删除 or 添加的
   

  // go get golang.org/x/tools/cmd/goimports }

 

 

中间用冒号【:】分割,这样才能识别你的项目。路径直到项目名就好,系统会帮我们找到src的

注意,mac用冒号分割,windows用分号分割(这个和windows自己设置path的时候是一致的)

{
    "env": {
     "GOROOT":"H:\\Golang", //go的安装路径
     "GOBIN":"H:\\Golang\\bin;H:/Golang/project/liuweiming/bin",
     "GOPATH": "H:\\Golang:\\project\\pro;H:/Golang/project/liuweiming", //您go的工作路径
     "GOARCH":"amd64", //系统变量里面的 GOHOSTARCH ,386为32位平台,amd64为 64位平台
     "GOOS":"windows", //系统里面的GOOS
     "PATH":"%GOBIN%;%PATH%"
    },
    "comp_lint_enabled": true,   //打开这个才有下面的 comp_lint_commands标签里面的内容
     

    
     
    "comp_lint_commands": [
        {"cmd": ["go", "install"]}
    ],
 
    "on_save": [
        {"cmd":"gs_comp_lint"}   //当按保存时以cmd自动执行的命令
    ]
}
windows_GoSublime配置

 

 

 

文件夹就是方法包,主项目的方法包名字就是main,然后其他的包随便命名,引用的第一句是package 文件夹  名称

 

转载于:https://www.cnblogs.com/liuweimingcprogram/p/8340784.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值