自用 Sublime Text 3 插件及配置

话说在 Mac OS 下方便使用的轻便单文件代码编辑器还真是不好找呢,试过 XCode 试过 Vim 试过 Emacs,其实对于我来说最主要的也就是打打 C++ 和 HTML 语言,另外像什么 js 啊 python 啊也就偶尔看看,本来比较推崇的是 Windows 平台的 Notepad++,可惜这货不支持 Mac/Linux,不过好在找到了一个替代品,那就是 Sublime Text 3,虽然还是个测试版但已经挺完善的了,不过有点顾忌的就是这软件不是开源且需要付费而且费用还挺贵的,不过还是可以正常使用用的嗯(我不会说结尾有惊喜)。。。

嗯本文基本上就是提供了本人自用的一些插件和配置文件,实现了自动排版格式化错误提示一键编译运行等等,嗯仅供参考。

首先,当然是安装 Package Control,这基本上是安装其他大部分插件的基础。不过要注意的是 ST3 和 ST2 的安装方法是略有不同的。

打开 Console(“View”-“Show Console” 或者 Ctrl+`),把下面代码粘贴进去回车即可开始安装。

import urllib.request,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace('','%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install'% (dh, h)) if dh != h else open(os.path.join( ipp, pf),'wb' ).write(by)

装好之后就可以看到 “Preferences” 下面多了 “Package Control”。然后就可以进行接下来插件 & 主题的安装了。基本操作就是 “Command Palette”(Super+Shift+P)-“Package Control: Install Package”(直接搜索 Install 就可以找到)- 找到自己的插件回车安装。

安装主题,个人推荐 itg.flat,注意主题装好之后还要到设置文件中添加相应的设置,本文放在之后个人配置部分一起附上。

接下来是插件部分嗯。

  • BracketHighlighter (高亮括号匹配)

  • ConvertToUTF8 (支持打开和保存 GBK 文档及自动转换成 UTF-8)

  • SublimeAStyleFormatter (C 语言格式化)

附上本人配置文件 “Preferences”-“Package Settings”-“SublimeAStyleFormatter”-“Settings - User”.

{
    "autoformat_on_save": true,
    "options_default": {
    "style": "allman"
    }
}
  • SublimeClang (C 语言自动补全查错)

  • SublimeLinter (多语言查错框架)
    • SublimeLinter-contrib-Clang (C 语言)
    • SublimeLinter-html-tidy (html)
    • SublimeLinter-php (php)
    • SublimeLinter-shellcheck (Bash)

附上本人的配置文件 “Preferences”-“Settings - User”.

{
    // 删除自动添加括号等
    "auto_match_enabled": false,
    // 颜色主题
    "color_scheme": "Packages/Theme - itg.flat/itg.Monokai.tmTheme",
    // 取消打开程序新建窗口
    "create_window_at_startup": false,
    // 保存时在末尾添加空行
    "ensure_newline_at_eof_on_save": true,
    // 字体
    "font_size": 15.0,
    // 忽略的包(默认自带)
    "ignored_packages":
    [
        "Vintage"
    ],
    // 取消在新窗口打开文件
    "open_files_in_new_window": false,
    // 显示编码
    "show_encoding": true,
    // 取消智能缩进
    "smart_indent": false,
    // 主题
    "theme": "itg.flat.dark.yellow.sublime-theme",
    // small tabs
    "itg_small_tabs": true,
    // Sidebar padding options
    "itg_sidebar_tree_xsmall": true,
    "itg_sidebar_tree_small": true,
    "itg_sidebar_tree_medium": true,
    "itg_sidebar_tree_large": true,
    "itg_sidebar_tree_xlarge": true,
    // Scrollbar size options
    "itg_scrollbar_small": true,
    "itg_scrollbar_medium": true,
    // 保存时删除行末空格
    "trim_trailing_white_space_on_save": true,
    // 自动换行
    "word_wrap": true
}

和本人的按键映射 “Preferences”-“Key Bindings - User”.

[
{
    //F9 实现一键编译运行(配合自定义 Build System)
    "keys": ["f9"], "command": "build", "args": {"variant": "BuildAndRunInShell"}
}
]

以及本人修改过的 C++ 的 Build System(“~/Library/Application Support/Sublime Text 3/Packages/C++/C++.sublime-build” 或者 “Tools”-“Build System”-“New Build System…”).

{
    "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
    
    "variants":
    [
        {
            // 新建终端中运行(需要先编译)
            "name": "Run",
            "cmd": ["bash", "-c", "open -a Terminal.app'${file_path}/${file_base_name}'"]
        },
        {
            // 编译文件并在新建终端中运行
            "name": "BuildAndRunInShell",
            "cmd": ["bash", "-c", "g++'${file}'-g -o'${file_path}/${file_base_name}'&& open -a Terminal.app'${file_path}/${file_base_name}'"]
        }
    ]
}

最后,嗯,这里附上一个 Sublime Text 3(Build 3065) 可用的 License…

—– BEGIN LICENSE —–
Andrew Weber
Single User License
EA7E-855605
813A03DD 5E4AD9E6 6C0EEB94 BC99798F
942194A6 02396E98 E62C9979 4BB979FE
91424C9D A45400BF F6747D88 2FB88078
90F5CC94 1CDC92DC 8457107A F151657B
1D22E383 A997F016 42397640 33F41CFC
E1D0AE85 A0BBD039 0E9C8D55 E1B89D5D
5CDB7036 E56DE1C0 EFCC0840 650CD3A6
B98FC99C 8FAC73EE D2B95564 DF450523
—— END LICENSE ——