Sublime Text 配置Python,Java,Markdown

之前用过不少类型的代码/文本编辑器,能够一举解决我所有编辑需求的工具还真是少之又少。曾经坚持用了三个月的Vim,还整理了一份vimrc在这。但是Vim学习曲线实在太陡,爬不上去,只好转向这款号称“性感无比”的代码编辑器Sublime Text,又说“程序员必备神器”。一入手才发现,简直是相见恨晚。今天偷空写下我的配置心得,以飨各位看官。

我个人喜欢Sublime Text的原因主要有四:跨Windows/Linux/Mac平台,轻量,安装插件方便,编辑体验极其流畅。平时的编辑需求包括,常规的文本编辑和浏览,用Markdown写文章,写Python和Java代码。接下来我也主要围绕这四类需求来简要介绍我的Sublime Text最基本的配置情况。

Sublime Text 有两个版本,ST3是Beta版,但是至今没觉得有什么影响使用的bug,我用的是Sublime Text 3

插件安装

Sublime Text 插件安装很简单,一般有两种方式。

离线安装

  • 下载插件。
  • 解压后,放入Packages目录中。找到Packages目录的简单方法是在Sublime Text 3 的Preferences菜单中选择Browse Packages
  • 重启 Sublime Text 3.

在线安装

Sublime Text 有一个Packages的管理插件,Sublime Package Control。通过 Sublime Package Control,安装、升级和卸载 Package 也变得轻松写意了。

  • 打开 Sublime Text 3,按下Control + '调出 Console。

  • 将以下代码粘贴进命令行中并回车:

    import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
    
  • Sublime Text 2 请使用以下代码:

    import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
    
  • 重启 Sublime Text 3,如果在 Preferences -> Package Settings中见到Package Control这一项,就说明安装成功了。

通过Package Control 来安装插件:

  1. 按下Shift + Command + P调出命令面板。
  2. 输入install调出Package Control: Install Package选项,按下回车。
  3. 输入插件名称并回车,稍等几秒就安装好了,有的插件可能需要重启Sublime Text才能激活。

常规配置

每个人的编辑习惯不一样,作为轻微强迫症患者,我喜欢给自己的编辑器做一些设置,例如文件编码,主题,字体,字体大小,显示行号,设置Tab大小,空格替换制表,显示空白符,显示80字符打印线等等。我的初级Settings-User内容如下。

{
    "font_size": 12,
    "ignored_packages":
    [
        "Vintage"
    ],
    "font_face": "Consolas",
    // 设置tab的大小为4
    "tab_size": 4,
    // 使用空格代替tab
    "translate_tabs_to_spaces": true,
    // 添加行宽标尺
    "rulers": [80, 100],
    // 显示空白字符
    "draw_white_space": "all",
    // 保存时自动去除行末空白
    "trim_trailing_white_space_on_save": true,
    // 保存时自动增加文件末尾换行
    "ensure_newline_at_eof_on_save": true,
    // 默认编码格式
    "default_encoding": "UTF-8"
}

下面是一些我配置的常规插件。

  • IMESupportsublime text 有个BUG,那就是不支持中文的鼠标跟随(和PS类似输入的光标和文字候选框不在一起),IMESupport可以完美解决这个问题。
  • SideBarEnhancementsSideBarEnhancements 是一款很实用的右键菜单增强插件,有以 diff 形式式显示未保存的修改、在文件管理器中显示该文件、复制文件路径、在侧边栏中定位该文件等功能,也有基础的诸如新建文件/目录,编辑,打开/运行,显示,在选择中/上级目录/项目中查找,剪切,复制,粘贴,重命名,删除,刷新等常见功能。
  • ConvertToUTF8通过本插件,您可以编辑并保存目前编码不被 Sublime Text 支持的文件,特别是中日韩用户使用的 GB2312,GBK,BIG5,EUC-KR,EUC-JP 等。ConvertToUTF8 同时支持 Sublime Text 2 和 3。
  • Terminal这个插件可以让你在Sublime中直接使用终端打开你的项目文件夹,并支持使用快捷键Control + Shift + T
  • Git这个插件会将Git整合
    进你的SublimeText,使的你可以在SublimeText中运行Git命令,包括添加,提交文件,查看日志,文件注解以及其它Git功能。
  • GitGutter在编辑器的凹槽区,依照 Git ,增加小图标来标识一行是否被插入、修改或删除。在 GitGutter 的 readme中有说明如何更改颜色图标来更新你的配色方案文件。
  • BracketHighlighter可以使括号高亮匹配,这个需要自己来配置配色方案。我的配置方案见最后(Bracket settings-User和主题文件Monokai Extended.sublime-package添加的代码)。
  • Monokai Extended比较喜欢Soda Dark和Monokai,这里有Monokai Extended。这个 color scheme 是 Monokai Soda 的增强。如果再配合 Markdown Extended,将大大改善 Markdown 的语法高亮。

配置Markdown书写环境

  • Markdown Extended一款Markdown高亮主题,安装后在右下角的语言栏选择Markdown Extended激活这种语言高亮,也可以在Control + shift + p启用set syntax:markdown extended

  • Markdown previewSublime Text 提供了对Markdown语言的支持,Markdown preview可实现Markdown转换HTML并预览的功能。Control + B生成HTML文档,Alt + m可直接在浏览器打开。配置快捷键方式如下。

    { "keys": ["alt+m"], "command": "markdown_preview", "args": { "target": "browser"} }
    

配置Python编辑环境

  • SublimeTmplSublime Text 新建文件的模板插件。模板支持自定义 attr(在settings-user里设置)。

  • SublimeCodeIntel为部分语言增强自动完成+成员/方法提示功能,包括了 Python 。这个插件同时也可以让你跳转到符号定义的地方,通过按住 alt 并点击符号。非常方便。支持所有Komodo Editor 支持的语言类型(需要自行配制)JavaScript, Mason, XBL, XUL, RHTML, SCSS, Python, HTML, Ruby, Python3, XML, Sass, XSLT, Django, HTML5, Perl, CSS, Twig, Less, Smarty, Node.js, Tcl, TemplateToolkit, PHP.此处仅介绍配置python.
    选择Preferences-->Browser Packages...进入相关的目录SublimeCodeIntel\.codeintel找到config.修改配置文件config。添加:

    {
      "Python": {
          "python":'D:/Program Files/Python26/python.exe',
          "pythonExtraPaths":['D:\Python34','D:\Python34\DLLs','D:\Python34\Lib','D:\Python34\Lib\site-packages','D:\Python34\libs']
        }
    }
    

配置Java编辑环境

前提

JDK已经安装好,Java环境已配置好。

配置编译环境

  • 在%Sublime Text 安装目录%/package/中找到Java.sublime-package,用好压或者其他压缩软件打开(重命名为rar文件双击就可以打开),在里面找到JavaC.sublime-build并打开。里面添加:

    {
       "shell_cmd": "runJava.bat \"$file\"",
       "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
       "selector": "source.java",
       //添加下面一段可支持编译中文,亲测Java可用
       "encoding": "GBK"
    }
    
  • 在java的JDK/bin路径下,新建一个文件,命名为runJava.bat,里面内容为:

    @ECHO OFF
    cd %~dp1
    IF EXIST %~n1.class (
    DEL %~n1.class
    )
    javac -encoding UTF-8 %~nx1
    IF EXIST %~n1.class (
    java %~n1
    )
    
  • 写一个Hello world 测试代码,使用Control + B运行之。

    public class test{
        public static void main(String[] args) {
            System.out.println("Hello world!");
        }
    }
    

附录

BracketHighlighter配置

Bracket settings-User

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

Monokai Extended.sublime-package添加的代码

<!-- BEGIN Bracket Highlighter plugin color modifications -->
<dict>
    <key>name</key>
    <string>Bracket Default</string>
    <key>scope</key>
    <string>brackethighlighter.default</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FFFFFF</string>
        <key>background</key>
        <string>#A6E22E</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Unmatched</string>
    <key>scope</key>
    <string>brackethighlighter.unmatched</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FFFFFF</string>
        <key>background</key>
        <string>#FF0000</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Curly</string>
    <key>scope</key>
    <string>brackethighlighter.curly</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF00FF</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Round</string>
    <key>scope</key>
    <string>brackethighlighter.round</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#E7FF04</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Square</string>
    <key>scope</key>
    <string>brackethighlighter.square</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FE4800</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Angle</string>
    <key>scope</key>
    <string>brackethighlighter.angle</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#02F78E</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Tag</string>
    <key>scope</key>
    <string>brackethighlighter.tag</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FFFFFF</string>
        <key>background</key>
        <string>#0080FF</string>
    </dict>
</dict>

<dict>
    <key>name</key>
    <string>Bracket Quote</string>
    <key>scope</key>
    <string>brackethighlighter.quote</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#56FF00</string>
    </dict>
</dict>
<!-- END Bracket Highlighter plugin color modifications -->

本文源链接:http://zhenchen.me/technology/2014/11/05/sublime-text-introduction.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容