# Sublime Text 3--Windows版
选择一个好的编辑器,可以极大的提高你的开发效率。我使用过Vim、Emacs和SublimeText。个人还是比较推荐现代化的sublimeText编辑器配合vim,emacs的操作方式。
更多内容,可以查看官方推荐的非官方文档->[文档地址](http://docs.sublimetext.info/en/latest/index.html)。
### 特色功能
- ctrl+p,搜索。这个搜索可以左侧的Folders里所以文件,而且是模糊搜索,不需要完整的文件名。配合#, @, :可以搜索变量,函数,行数。
- 多行编辑。按住ctrl加左击,可以出现多个光标位置。
- 多重选择, ctrl+d可以多重选择,结合光标键,可以批量修改。
- 多屏编辑,alt+shift+数字键。
- Projects,通过View->Side Bar->show Side Bar左侧文件结构管理。
- snippet, 不同格式的文件,可以设置不同的snippet,就是简写,通过tab扩展成相应的内容。
- 各种插件支持
- 正则表达式搜索,比如我要删除所有的空行,可以使用`^[\s]*\n`来选择所有空行。可以使用`(?<=<h2>).+(?=</h2>)`来匹配h2标签内的内容。
- ctrl+shift+p,功能菜单。只有你想不到,没有做不到的事情。
### 下载安装
ST3虽然没有提供稳定版本,但是相比ST2,速度提升还是很明显的。缺点就是插件不够完善,以及插件的编写全部采用Python3.x版本。这里给出ST3[下载地址](http://www.sublimetext.com/3)。
个人最喜欢的一点新特性是:新增了跳转到函数定义处功能,在大菜单Goto中可以查看到。
首次使用,建议先打开侧栏,方便管理文件结构。打开方式:`View->Side Bar->Show Side Bar`。
### 插件安装
插件通过[Package Control](https://sublime.wbond.net/installation#Simple)来管理。
### 安装Package Control
进入Package Control页面,选择对应版本的代码进行复制,比如ST3如下:
~~~
import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; 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://sublime.wbond.net/' + 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)
~~~
使用`View->Show Console`打开控制台,粘贴复制的代码,敲击回车运行。待程序右下角提示`success`后,重启ST。
再次进入ST后,可以通过菜单`Preferences->Package Control`或者按键`ctrl+shift+p`查找`install package`。输入对应的插件名称,即可安装插件。
更多插件,可以通过Package Control中的[search](https://sublime.wbond.net/search)查找。
### 配置修改
配置包括Preferences->Settings-Default和Key Bindings-Default。
修改配置文件时,以上两个默认文件最好不要修改,自行讲需要设置的参数写入到Settings-User和Key Bindings-User里,它们会自动覆盖Default相同属性。
### 备份配置
配置文件的路径,点击Preferences->Browse Packages打开目录,找到User目录,这里的文件就是自己的配置文件,最好备份,方便下次替换。
### 插件推荐
### 主题配色和代码配色
配色其实分为主题配色和代码配色。主题配色就是程序的外形设置,代码配色则是打开文件高亮显示的配置。
代码配色我是选择的自己备份的主题`Peacock (SL).tmTheme`,放置在了`Packages/User/theme/`目录下,主要是我针对`markdown`语法进行了设置,其他可选择的推荐`Dayle Rees Color Schemes`插件。
主题配色我使用的是`Theme-Phoenix`插件,插播一句,编程的字体应该选择等宽类型的。在windows下强烈推荐使用`yaheiconsolashybrid`。
安装完了插件,可以在`Perferences->Color Scheme`中查看修改。也可以通过配置文件修改:
~~~
{
"caret_style": "phase",
"color_scheme": "Packages/User/theme/Peacock (SL).tmTheme",
"default_line_ending": "unix",
"font_face": "Monaco",
"font_size": 18.0,
"highlight_line": true,
"hot_exit": false,
"highlight_modified_tabs": true,
"show_encoding": true,
"ignored_packages":
[
"Vintage"
],
"original_color_scheme": "Packages/User/theme/Peacock (SL).tmTheme",
"phoenix_color_green": true,
"phoenix_dirty_bottom_bar_red": true,
"phoenix_eighties": true,
"phoenix_highlight_current_tab": true,
"phoenix_sidebar_tree_large": true,
"phoenix_solid_current_tab": true,
"phoenix_tabs_medium": true,
"rulers":
[
80,
100,
120
],
"soda_folder_icons": false,
"tab_size": 4,
"theme": "Phoenix Dark.sublime-theme",
"translate_tabs_to_spaces": true,
"word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?",
"word_wrap": true,
"wrap_width": 0
}
~~~
这里我列出的是我的全部配置文件,可以看到相关的主题配色、代码配色和字体设置。
### ST辅助类
-
**SideBarEnhancements**提升右侧导航栏功能
-
**Sublimerge Pro**文件对比功能
-
**Markdown Preview**书写markdown格式文本,预览等功能。绑定了快捷键`ctrl+m`。
-
**Terminal**直接在对应文件所在目录打开terminal功能。绑定了快捷键`ctrl+alt+t`。
-
**IMESupport**使得输入法能跟随光标位置,mac下无此问题。
### 代码显示辅助类
-
**BracketHighlighter**高亮显示匹配括号,会在左侧的行号标识处显示对应的括号位置和范围。
-
**HTML-CSS-JS Prettify**格式化代码工具,默认快捷键`ctrl+shift+h`。
-
**CSScomb**按照一定规律格式化CSS的属性顺序。
### 代码书写辅助类
-
**Emmet**必装插件,辅助书写HTML, CSS。
-
**AutoFileName**书写代码时,自动提示补充文件路径。
-
**DocBlockr**辅助书写注释
-
**JSHint Gutter**利用`jslint`检测js代码是否规范的插件。
-
**LiveStyle**配合对应的chrome插件,可以达到修改文件后,自动刷新页面的效果。但目前对`less`,`sass`之类预编译语言支持不够好。
### 使用技巧
### 快捷键操作
默认的快捷操作,可以查看`Preferences->Key Binding`,或者文档:[Keyboard Shortcuts-Windows/Linux](http://docs.sublimetext.info/en/latest/reference/keyboard_shortcuts_win.html)和[Keyboard Shortcuts-OSX](http://docs.sublimetext.info/en/latest/reference/keyboard_shortcuts_osx.html)。
个人常用的快捷键设置如下:
~~~
[
/*============= Emacs Style =============*/
{ "keys": ["ctrl+b"], "command": "move", "args": {"by": "characters", "forward": false} },
{ "keys": ["ctrl+f"], "command": "move", "args": {"by": "characters", "forward": true} },
{ "keys": ["ctrl+p"], "command": "move", "args": {"by": "lines", "forward":
false} },
{ "keys": ["ctrl+n"], "command": "move", "args": {"by": "lines", "forward":
true} },
{ "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "bol", "extend": false} },
{ "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": false} },
{ "keys": ["ctrl+l"], "command": "show_at_center" },
/*============= End Emacs Style =============*/
/*============= switch tabs =============*/
{ "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+shift+t"], "command": "reopen_last_file" },
/*============= End switch tabs =============*/
/*============= Modify Default key-mapping =============*/
{ "keys": ["alt+a"], "command": "select_all" },
{ "keys": ["ctrl+t"], "command": "new_file" },
{ "keys": ["f5"], "command": "open_in_browser" },
// autocomplate
{ "keys": ["alt+/"], "command": "auto_complete" },
// paste
{ "keys": ["ctrl+v"], "command": "paste_and_indent" },
{ "keys": ["ctrl+shift+v"], "command": "paste" },
// reindex
{ "keys": ["ctrl+i"], "command": "reindent" },
// find and goto
{ "keys": ["alt+f"], "command": "show_panel", "args": {"panel": "find"} },
{ "keys": ["ctrl+g"], "command": "find_all_under" },
{ "keys": ["alt+p"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
{ "keys": ["alt+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} },
{ "keys": ["alt+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
{ "keys": ["alt+;"], "command": "show_overlay", "args": {"overlay": "goto", "text": "#"} },
{ "keys": ["alt+d"], "command": "goto_definition" },
{ "keys": ["alt+-"], "command": "jump_back" },
{ "keys": ["alt+="], "command": "jump_forward" },
/*============= End Modify Default key-mapping =============*/
/*============= Plugin =============*/
// Emmet expand
{"keys": ["alt+e"], "args": {"action": "expand_abbreviation"}, "command": "run_emmet_action", "context": [{"key": "emmet_action_enabled.expand_abbreviation"} ] },
// js Hint Grunt
{"keys": ["alt+j"], "command": "jshint"},
// markdown preview
{ "keys": ["ctrl+m"], "command": "markdown_preview", "args": {"target": "browser", "parser":"markdown"} },
// terminal
{ "keys": ["ctrl+alt+t"], "command": "open_terminal" },
{ "keys": ["ctrl+shift+alt+t"], "command": "open_terminal_project_folder" }
/*============= End Plugin =============*/
]
~~~
其中涉及到了emacs移动光标,多标签切换,以及快速查找等方式。
### snippet
snippet是代码片段,可以方便的自动补全。创建方式通过`Tools->New Snippet`完成。
默认的文件如下:
~~~
<snippet>
<content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<!-- <tabTrigger>hello</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>
~~~
代码段写在`CDATA[]`中,`${}`为占位字符。
`tabTrigger`为自动补全需要的字符,`scope`设置的是文件格式。
创建完成之后,个人建议保存在`User->snippet`目录下,`snippet`需要自行创建,方便管理。
### build命令和Macro命令
这些命令的使用请参考文档->[Reference](http://docs.sublimetext.info/en/latest/reference/reference.html)。
### 参考文档
- [sublimeText官网](http://www.sublimetext.com/)
- [非官方手册](http://docs.sublimetext.info/en/latest)
- [Package Control](https://sublime.wbond.net/installation#Simple)
- 介紹
- 程序员基础知识
- 字符编码
- 技术名词
- 语义化版本
- 命名规范
- 书写文档
- 开源协议
- 目录结构
- 正则表达式
- 平凡之路
- 数据结构与算法
- 堆和栈
- 浮点数类型
- XML和JSON
- 算法学习之路
- 排序算法
- 代码架构
- 设计模式
- 常用的Javascript设计模式
- 面向对象编程
- 继承
- 多态
- 封装
- 面向接口编程
- 代码评审
- 六种量化你代码的方式
- 程序员必备的代码审查(Code Review)清单
- 服务器部署
- AWS简介
- 网络知识
- HTTPS, SPDY和 HTTP/2性能的简单对比
- HTTP状态码
- 懂点设计
- 佳作赏析
- 无缝平铺
- Sketch学习
- 设计与实现的平衡
- 写点东西
- 使用gitbook
- 合格的PM
- 一个好的产品经理
- 产品经理的技能
- 团队合作
- 关于招聘
- 培训新人
- 领导能力
- 获取知识
- MOOC
- Podcasts
- 英语学习
- 设计学习
- 前端学习
- iOS学习
- 游戏开发
- 关注健康
- 过劳检测
- 关于睡眠
- 提升效率
- 学会阅读
- 学会提问
- 善用搜索
- 学会写作
- 时间管理
- 知识管理
- 文件管理
- 密码管理
- 制作视频
- 制作PPT
- 论音乐对效率的影响
- 程序员效率指南
- SOHO
- 创业资源
- Hacker
- 保护隐私
- 关于工作
- 找工作前需要思考的问题
- 原则与技巧
- 关于简历
- 其他方面
- 硬件相关
- 常用软件
- Windows
- 硬件配置
- 系统安装
- 常用软件
- Mac
- 通用设置
- 权限问题
- alias设置
- 常用软件
- 开发环境
- 快捷键设置
- 常用终端命令
- dotfiles
- Android
- 常用软件
- 如何登录美国区GooglePlay
- 开发工具
- git
- EditorConfig
- node
- shadowsocks
- ST3--Windows篇
- ST3--Mac篇
- gulp
- 字体的选择
- Emacs
- WebStorm
- tmux
- Sketch
- Sketch中文学习资料
- Trello
- 使用Trello管理项目的经验
- git进阶
- 15分钟学会使用Git和远程代码库
- GitHub秘籍
- JetBrains
- IDE设置
- 附录
- 计算机科学与技术
- 网站
- 书籍
- 工具