最近,当我主要使用python开发环境编辑的时候,我开始越来越多地用到sublinme text 2.这篇文章主要说明了能让python的编程者使用更方便的一些设置和调整。
为何选择sublime text?
我以前一直是textmate的忠实用户。这是一个轻量级的、开源的软件,作为os x的本地应用,具有很好的mac风格。不过,虽然textmate是一个很棒的编辑器,有时候还是显得功能不够。
我用过一些功能更强的软件,例如 加上python插件的intellij idea。 我特别喜欢它的debugger和test runner。不过,一个像intellij这样的全功能的ide对于中小项目来说还是显得过于庞大。
最近几周我开始越来越多的使用 sublime text。当我将它安装好之后,感觉非常不错。它确实非常快,自动定期的更新,以及更棒的是完全支持跨平台。对我来说,它最终胜过textmate的地方是sublime强大的插件子系统。对于python开发,有不少插件可以让你开发起来更流畅、更有乐趣。
我现在仍然在不同的项目之间切换编辑器。不过我发现对应python开发,sublime在轻量级的编辑器和全功能的ide之间有着很好的平衡。
字体的选择
ubuntu mono 是非常非常不错的字体。前些天我刚从 menlo 切换过来,这绝对不让人后悔。
在我的15寸的macbook上,ubuntu mono的16号字非常适合。1680 × 1050的分辨率对于一个边栏加两个编辑器窗口(自动调整到80个字符宽)刚好合适。
如果你打算认真的挑选一下字体, slant.co的这篇文章 写的不错。它包含了大部分流行的编程方面的字体的截图及下载链接。
安装插件
正如之前提到的, sublime 有一个非常丰富的插件系统。而我当前使用的插件如下:
package control 在 sublime 里直接安装附加插件的包管理器。这是唯一一个你必须手动安装的插件。这边列出的其他所有插件都可以通过 package control 来安装。也可以通过它来更新已安装过的插件。简单得想做是 sublime packages 的 apt-get 就行了。
color scheme – tomorrow night color schemes 决定了编辑器界面语法高亮的字体颜色。这是一个非常酷的暗黑系样式。
theme – soda dark themes 影响 sublime 界面元素的颜色和风格。这个非常适合 tomorrow night 的配色方案。
sidebarenhancements 这个插件提供了侧边栏附加的上下文菜单选项,例如”new file”,”new floder”等。这些本应当默认就该有的,却没有。
all autocomplete sublime 默认的自动完成只关注当前文件的单词。这个插件扩展了其自动完成的单词列表到所有打开的文件。
sublimecodeintel 为部分语言增强自动完成功能,包括了 python 。这个插件同时也可以让你跳转到符号定义的地方,通过按住 alt 并点击符号。非常方便。
sublimerepl 允许你在编辑界面直接运行 python 解释器。我倾向于在单独的终端窗口用bpython 来运行,但有时 sublimerepl 是很有帮助的。
gitgutter 在编辑器的凹槽区,依照 git ,增加小图标来标识一行是否被插入、修改或删除。在 gitgutter 的 readme 中有说明如何更改颜色图标来更新你的配色方案文件。
pylinter 这个插件提供了目前我所见到的最好的 pylint 编辑器整合。它自动检查 .py 文件,无论其何时被保存,并且会直接在编辑界面显示 pylint 违规。它还有一个快捷方式来禁用局部的 pylint 检查,通过插入一个 #pylint: 禁用注释。这个插件对于我确实非常有用。
配置文件
sublime text 的一个优点就是它的所有配置都是简单的基于 json 的配置文件。这使得你可以很容易的将配置转到另一个系统中。我也见过一些人使用 dropbox 自动同步他们所有电脑上的配置。
preferences.sublime-settings 配置了 sublimede 的显示和行为.你可以在sublime 中通过 preferences > settings — user 打开并编辑此文件。我使用如下配置:
{
// colors
“color_scheme”: “packages/tomorrow color schemes/tomorrow-night.tmtheme”,
“theme”: “soda dark.sublime-theme”,
// font
“font_face”: “ubuntu mono”,
“font_size”: 16.0,
“font_options”: [“subpixel_antialias”, “no_bold”],
“line_padding_bottom”: 0,
“line_padding_top”: 0,
// cursor style – no blinking and slightly wider than default
“caret_style”: “solid”,
“wide_caret”: true,
// editor view look-and-feel
“draw_white_space”: “all”,
“fold_buttons”: false,
“highlight_line”: true,
“auto_complete”: false,
“show_minimap”: false,
// editor behavior
“scroll_past_end”: false,
“highlight_modified_tabs”: true,
“find_selected_text”: true,
// word wrapping – follow pep 8 recommendations
“rulers”: [ 72, 79 ],
“word_wrap”: true,
“wrap_width”: 80,
// whitespace – no tabs, trimming, end files with \n
“tab_size”: 4,
“translate_tabs_to_spaces”: true,
“trim_trailing_white_space_on_save”: true,
“ensure_newline_at_eof_on_save”: true,
// sidebar – exclude distracting files and folders
“file_exclude_patterns”:
[
“.ds_store”,
“*.pid”,
“*.pyc”
],
“folder_exclude_patterns”:
[
“.git”,
“__pycache__”,
“env”,
“env3”
]
}
pylinter.sublime-settings配置了pylinter 插件。我使用下面的配置让 pyhton 在保存时自动规范,并对违反规范显示图标。
{
// configure pylint’s behavior
“pylint_rc”: “/users/daniel/dev/pylintrc”,
// show different icons for errors, warnings, etc.
“use_icons”: true,
// automatically run pylinter when saving a python document
“run_on_save”: true,
// don’t hide pylint messages when moving the cursor
“message_stay”: true
}
按键绑定
sublime 的按键绑定也是全部可配置的基于json的 sublime-keymap 配置文件。我修改了一些默认配置以更好的配合我的 textmate / intellij 肌肉记忆。你可以完全不修改。如果你想,修改很简单,并可以跨平台使用。我使用如下的绑定:
[
// rebind “go to file” to cmd+shift+o
{ “keys”: [“super+shift+o”], “command”: “show_overlay”, “args”: {
“overlay”: “goto”,
“show_files”: true
}},
// rebind swap line up/down to cmd+shift+up/down
{ “keys”: [“super+shift+up”], “command”: “swap_line_up” },
{ “keys”: [“super+shift+down”], “command”: “swap_line_down” },
// delete a line with cmd+delete
{ “keys”: [“super+backspace”], “command”: “run_macro_file”, “args”: {
“file”: “packages/default/delete line.sublime-macro”
}},
// reindent selection with cmd+alt+l
{ “keys”: [“super+alt+l”], “command”: “reindent”}
]
命令行工具
同 textmate 的 mate 类似,sublime text 包含了一个命令行工具,允许你通过 shell 打开编辑器。工具名为 sublis,默认不可用。要使之生效,在任一 shell 中运行下面:
ln -s /applications/sublime\ text\ 2.app/contents/sharedsupport/bin/subl /usr/local/bin/subl
要将 sublime 作为 git 互动命令的默认编辑器使用——举例,撰写提交信息——只需添加下面一行到你的 ~/.profile 文件:
export git_editor=”subl –wait –new-window”