原文地址:http://www.madongdong.me/sublime-text3%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/
作者:马东东
前言(Prologue)
Sublime Text是一款跨平台代码编辑器(Code Editor),从最初的Sublime Text 1.0,到现在的Sublime Text 3.0,Sublime Text从一个不知名的编辑器演变到现在几乎是各平台首选的GUI编辑器。特别是Sublime Text编写JavaScript/HTML/Python是非常好的利器。Sublime Text官网下载地址戳这里:http://www.sublimetext.com/
安装(Installation)
Sublime Text官方网站提供了Sublime Text各系统各版本的下载,目前Sublime Text的最新版本是Sublime Text 3。这里以Windows版本的Sublime Text安装为例。
注意在安装时勾选Add to explorer context menu,这样在右键单击文件时就可以直接使用Sublime Text打开。
添加Sublime Text到环境变量
使用Win + R
运行sysdm.cpl
打开“系统属性”。
然后在“高级”选项卡里选择“环境变量”,编辑“Path”,增加Sublime Text的安装目录(例如 C:\Program Files\Sublime Text 3)。
接下来你就可以在命令行里面利用subl
命令直接使用Sublime Text了:
subl file 使用Sublime Text打开file文件
subl folder 使用Sublime Text打开folder文件夹
subl . 使用Sublime Text当前文件夹
安装Package Control
前文提到Sublime Text支持大量插件,如何找到并管理这些插件就成了一个问题,Package Control正是为了解决这个问题而出现的,利用它我们可以很方便的浏览、安装和卸载Sublime Text中的插件。
进入Package Control的官网,里面有详细的安装教程。Package Control支持Sublime Text 2和3,本文只给出3的安装流程:
- 使用
Ctrl + `
打开Sublime Text控制台。 - 将下面的代码粘贴到控制台里:
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 elseopen(os.path.join( ipp, pf), 'wb' ).write(by)
- 等待Package Control安装完成。之后使用
Ctrl + Shift + P
打开命令板,输入install
应出现Package Control:
成功安装Package Control之后,我们就可以方便的安装使用Sublime Text的各种插件:
购买(Purchase)
Sublime Text是一个收费闭源软件,这在一定程度上成为了我支持Sublime Text的理由(我心中的软件靠谱程度:免费开源 << 免费闭源 < 收费开源 < 收费闭源):戳这里购买。
不过不购买Sublime Text也可以“正常”使用它,只是Sublime Text会时不时的弹出一个对话框提醒你购买,此外窗口处会有一个很屌丝很low逼的(UNREGISTERED)。虽然也只是偶尔弹出提示购买,并没有任何功能限制。快把DreamWeaver打入冷宫吧!但是,作为一个不是处女座胜似处女座的挨踢民工你叫我怎么忍?!!
用着我没过四级的英语水平Google到了可用的许可证一枚,造福社会(:不尊重知识产权的渣渣…
1
2
3
4
5
6
7
8
9
10
11
12
13
|
—– BEGIN LICENSE —–
TwitterInc
200 User License
EA7E-890007
1D77F72E 390CDD93 4DCBA022 FAF60790
61AA12C0 A37081C5 D0316412 4584D136
94D7F7D4 95BC8C1C 527DA828 560BB037
D1EDDD8C AE7B379F 50C9D69D B35179EF
2FE898C4 8E4277A8 555CE714 E1FB0E43
D5D52613 C3D12E98 BC49967F 7652EED2
9D2D2E61 67610860 6D338B72 5CF95C69
E36B85CC 84991F19 7575D828 470A92AB
—— END LICENSE ——
|
推荐安装的插件列表
易用性:
ChineseLocalization , 完全汉化插件
Monokai Extended 主题,推荐使用
HTML5,HTML5标签拓展
JsFormat,javascript格式化
CSS Format,CSS格式化
Tag,HTML格式化
Brackethighlighter,标签对标记
SideBarEnhancements ,增强型侧边栏
BufferScroll,代码折叠状态保留
StyleToken , 标记颜色代码功能:
Emmet,前端神器
TortoiseSVN,SVN你懂的
QuoteHTML,把HTML拼接成js插入字符串,神器
Clipboard Manager,增强型剪贴板,可访问历史剪贴板记录
FileHeader,文件模板 , 可自动更新修改时间
AutoPrefixer,浏览器私有属性前缀补全 (Node.js依赖)
ColorConvert,RGBA颜色转换,十六进制颜色转换为RGBA颜色
Better Completion,全能代码提示
LiveStyle,双向更改无刷新实时预览 , 包含chrome插件 Emmet LiveStyle
SFTP , 需要激活 ,看这里 Sublime Text SVN/SFTP 插件序列号通过微信自动获取
*jQuery,jQuery 代码提示(Better Completion 已可替代此插件)
*Sass以及SASS Build,使用Sass必备,ctrl+b执行编译
*yui compressor,JS和CSS压缩 (JRE依赖),ctrl+b执行编译推荐使用面向未来的前端自动化工具(相对成熟的Grunt,以及后起之秀 Gulp ,还有百度 FIE),以上两个星标插件都可被自动化工具所取代。Gulp教程移步这里:Gulp 自动化你的前端
其他:
ConvertToUTF8,GBK编码兼容
IMESupport,输入法不跟随时安装
TrailingSpaces,多余空格标记,强迫症患者福音
Hasher,符号转义,ctrl+shift+p 选择 Entity Encode
PackageResourceViewer,插件修改必备,ctrl+shift+p 调用 Open Resource
使用 Sublime Text 建议掌握常用命令
1、查找打开过的文件:Ctrl+P,然后输入最近的文件名就可以即时预览到文件内容。
2、命令输入框:Ctrl+Shift+P
- 切换语法模式
Set Syntax : [编程语言]
可以缩写为:
sspy
这样就可以切换语法模式了,这以便于代码高亮及插件调用(比如HTML模式会使Emmet生效)
我在这里推荐给大家一个优秀的主题,这是我试过后感觉最好的。该主题套装内置多种主题方案,它可能是目前你在扩展中心能找到的最好的主题。
它就是 Boxy Theme –> Boxy Theme – Packages – Package Control
- 我截一张图给大家看看吧,Monokai 方案
- 这个主题的设置项都集成在 Preferences –> Package Settings –> Boxy Theme –> Configuration 下,包括主题、配色、全局设置(颜色、大小之类的)、标签栏、侧栏、搜索栏、状态栏、滚动条等设置项都可以用鼠标点选应用,非常方便直观(如下)
- 本主题须配合该作者的另一款图标扩展 “A File Icon” 来使用 –> A File Icon – Packages – Package Control ,且安装完成两款扩展要重启一下 Sublime Text 3。
尾声:Windows下快捷键一览
最常用
基本编辑(Basic Editing)
↑↓←→
就是↑↓←→
,不是KJHL
,(没错我就是在吐槽Vim,尼玛设成WSAD
也比这个强啊),粘贴剪切复制均和系统一致。
Ctrl + Enter
在当前行下面新增一行然后跳至该行;Ctrl + Shift + Enter
在当前行上面增加一行并跳至该行。
Ctrl + ←/→
进行逐词移动,相应的,Ctrl + Shift + ←/→
进行逐词选择。
Ctrl + ↑/↓
移动当前显示区域,Ctrl + Shift + ↑/↓
移动当前行。
选择(Selecting)
Sublime Text的一大亮点是支持多重选择——同时选择多个区域,然后同时进行编辑。
Ctrl + D
选择当前光标所在的词并高亮该词所有出现的位置,再次Ctrl + D
选择该词出现的下一个位置,在多重选词的过程中,使用Ctrl + K
进行跳过,使用Ctrl + U
进行回退,使用Esc
退出多重编辑。
多重选词的一大应用场景就是重命名——从而使得代码更加整洁。尽管Sublime Text无法像IDE(例如Eclipse)那样进行自动重命名,但我们可以通过多重选词+多重编辑进行直观且便捷的重命名:
有时我们需要对一片区域的所有行进行同时编辑,Ctrl + Shift + L
可以将当前选中区域打散,然后进行同时编辑:
有打散自然就有合并,Ctrl + J
可以把当前选中区域合并为一行:
查找&替换(Finding&Replacing)
Sublime Text提供了强大的查找(和替换)功能,为了提供一个清晰的介绍,我将Sublime Text的查找功能分为快速查找、标准查找和多文件查找三种类型。
快速查找&替换
多数情况下,我们需要查找文中某个关键字出现的其它位置,这时并不需要重新将该关键字重新输入一遍然后搜索,我们只需要使用Shift + ←/→
或Ctrl + D
选中关键字,然后F3
跳到其下一个出现位置,Shift + F3
跳到其上一个出现位置,此外还可以用Alt + F3
选中其出现的所有位置(之后可以进行多重编辑,也就是快速替换)。
标准查找&替换
另一种常见的使用场景是搜索某个已知但不在当前显示区域的关键字,这时可以使用Ctrl + F
调出搜索框进行搜索:
以及使用Ctrl + H
进行替换:
关键字查找&替换
对于普通用户来说,常规的关键字搜索就可以满足其需求:在搜索框输入关键字后Enter
跳至关键字当前光标的下一个位置,Shift + Enter
跳至上一个位置,Alt + Enter
选中其出现的所有位置(同样的,接下来可以进行快速替换)。
Sublime Text的查找有不同的模式:Alt + C
切换大小写敏感(Case-sensitive)模式,Alt + W
切换整字匹配(Whole matching)模式,除此之外Sublime Text还支持在选中范围内搜索(Search in selection),这个功能没有对应的快捷键,但可以通过以下配置项自动开启。
"auto_find_in_selection": true
这样之后在选中文本的状态下范围内搜索就会自动开启,配合这个功能,局部重命名(Local Renaming)变的非常方便:
使用Ctrl + H
进行标准替换,输入替换内容后,使用Ctrl + Shift + H
替换当前关键字,Ctrl + Alt + Enter
替换所有匹配关键字。
正则表达式查找&替换
正则表达式是非常强大的文本查找&替换工具,Sublime Text中使用Alt + R
切换正则匹配模式的开启/关闭。Sublime Text的使用Boost里的Perl正则表达式风格。
出于篇幅原因,本文不会对正则表达式进行详细介绍,Mastering Regex(中译本:精通正则表达式)对正则表达式的原理和各语言下的使用进行了详细介绍。此外网上有大量正则表达式的优秀教程(“正则表达式30分钟入门教程”和MSDN正则表达式教程),以及在线测试工具(regexpal和regexer)。
多文件搜索&替换默认在当前打开的文件和文件夹进行搜索/替换,我们也可以指定文件/文件夹进行搜索/替换。
跳转(Jumping)
Sublime Text提供了强大的跳转功能使得我们可以在不同的文件/方法/函数中无缝切换。就我的使用经验而言,目前还没有哪一款编辑器可以在这个方面超越Sublime Text。
跳转到文件
Ctrl + P
会列出当前打开的文件(或者是当前文件夹的文件),输入文件名然后Enter
跳转至该文件。
需要注意的是,Sublime Text使用模糊字符串匹配(Fuzzy String Matching),这也就意味着你可以通过文件名的前缀、首字母或是某部分进行匹配:例如,EIS
、Eclip
和Stupid
都可以匹配EclipseIsStupid.java
。
跳转到符号
尽管是一个文本编辑器,Sublime Text能够对代码符号进行一定程度的索引。Ctrl + R
会列出当前文件中的符号(例如类名和函数名,但无法深入到变量名),输入符号名称Enter
即可以跳转到该处。此外,还可以使用F12
快速跳转到当前光标所在符号的定义处(Jump to Definition)。
比较有意思的是,对于Markdown,Ctrl + R
会列出其大纲,非常实用。
跳转到某行
Ctrl + G
然后输入行号以跳转到指定行:
组合跳转
在Ctrl + P
匹配到文件后,我们可以进行后续输入以跳转到更精确的位置:
@
符号跳转:输入@symbol
跳转到symbol
符号所在的位置#
关键字跳转:输入#keyword
跳转到keyword
所在的位置:
行号跳转:输入:12
跳转到文件的第12行。
所以Sublime Text把Ctrl + P
称之为“Go To Anything”,这个功能如此好用,以至于我认为没有其它编辑器能够超越它。
中文输入法的问题
从Sublime Text的初版(1.0)到现在(3.0 3065),中文输入法(包括日文输入法)都有一个问题:输入框不跟随。
目前官方还没有修复这个bug,解决方法是安装IMESupport
插件,之后重启Sublime Text问题就解决了。
文件夹(Folders)
Sublime Text支持以文件夹做为单位进行编辑,这在编辑一个文件夹下的代码时尤其有用。在File
下Open Folder
:
你会发现右边多了一个侧栏,这个侧栏列出了当前打开的文件和文件夹的文件,使用Ctrl + K, Ctrl + B
显示或隐藏侧栏,使用Ctrl + P
快速跳转到文件夹里的文件。
窗口&标签(Windows & Tabs)
Sublime Text是一个多窗口多标签编辑器:我们既可以开多个Sublime Text窗口,也可以在一个Sublime Text窗口内开多个标签。
窗口(Window)
使用Ctrl + Shift + N
创建一个新窗口(该快捷键再次和搜狗输入法快捷键冲突,个人建议禁用所有搜狗输入法快捷键)。
当窗口内没有标签时,使用Ctrl + W
关闭该窗口。
标签(Tab)
使用Ctrl + N
在当前窗口创建一个新标签,Ctrl + W
关闭当前标签,Ctrl + Shift + T
恢复刚刚关闭的标签。
编辑代码时我们经常会开多个窗口,所以分屏很重要。Alt + Shift + 2
进行左右分屏,Alt + Shift + 8
进行上下分屏,Alt + Shift + 5
进行上下左右分屏(即分为四屏)。
分屏之后,使用Ctrl + 数字键
跳转到指定屏,使用Ctrl + Shift + 数字键
将当前屏移动到指定屏。例如,Ctrl + 1
会跳转到1屏,而Ctrl + Shift + 2
会将当前屏移动到2屏。
全屏(Full Screen)
Sublime Text有两种全屏模式:普通全屏和无干扰全屏。
个人强烈建议在开启全屏前关闭菜单栏(Toggle Menu),否则全屏效果会大打折扣。
F11
切换普通全屏:
Shift + F11
切换无干扰全屏:
风格(Styles)
风格对于任何软件都很重要,对编辑器也是如此,尤其是GUI环境下的编辑器。作为一个程序员,我希望我的编辑器足够简洁且足够个性。
用过Sublime Text之后,我立刻就卸掉了Notepad++。
Sublime Text自带的风格是我喜欢的深色风格(也可以调成浅色),默认主题是Monokai Bright
,这两者的搭配已经很不错了,不过我们还可以做得更好:接下来我将会展示如何通过设置偏好项和添加自定义风格/主题使得Sublime Text更加Stylish。
一些设置(Miscellaneous Settings)
下面是我个人使用的设置项。
// 设置Sans-serif(无衬线)等宽字体,以便阅读
"font_face": "YaHei Consolas Hybrid", "font_size": 12, // 使光标闪动更加柔和 "caret_style": "phase", // 高亮当前行 "highlight_line": true, // 高亮有修改的标签 "highlight_modified_tabs": true,
设置之后的效果如下:
多文件搜索&替换
使用Ctrl + Shift + F
开启多文件搜索&替换(注意此快捷键和搜狗输入法的简繁切换快捷键有冲突):
主题(Themes)
前面已经介绍过一款主题,Sublime Text有大量第三方主题:[https://sublime.wbond.net/browse/labels/theme],这里我给出几个个人感觉不错的主题:
Soda Dark
Nexus
Flatland
配色(Color)
colorsublime包含了大量Sublime Text配色方案,并支持在线预览,配色方案的安装教程在这里,恕不赘述。
我个人使用的是Nexus主题和Flatland Dark配色,配置如下:
"theme": "Nexus.sublime-theme", "color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme",
效果如下:
编码(Coding)
优秀的编辑器使编码变的更加容易,所以Sublime Text提供了一系列功能以提高开发效率。
良好实践(Good Practices)
良好的代码应该是规范的,所以Google为每一门主流语言都设置了其代码规范(Code Style Guideline)。我自己通过下面的设置使以规范化自己的代码。
// 设置tab的大小为2
"tab_size": 2, // 使用空格代替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,
代码段(Code Snippets)
Sublime Text支持代码段(Code Snippet),输入代码段名称后Tab
即可生成代码段。
你可以通过Package Control安装第三方代码段,也可以自己创建代码段,参考这里。
格式化(Formatting)
Sublime Text基本的手动格式化操作包括:Ctrl + [
向左缩进,Ctrl + ]
向右缩进,此外Ctrl + Shift + V
可以以当前缩进粘贴代码(非常实用)。
除了手动格式化,我们也可以通过安装插件实现自动缩进和智能对齐:
- HTMLBeautify:格式化HTML。
- AutoPEP8:格式化Python代码。
- Alignment:进行智能对齐。
自动完成(Auto Completion)
Sublime Text 支持一定的自动完成,按Tab
自动补全。
括号(Brackets)
编写代码时会碰到大量的括号,利用Ctrl + M
可以快速的在起始括号和结尾括号间切换,Ctrl + Shift + M
则可以快速选择括号间的内容,对于缩进型语言(例如Python)则可以使用Ctrl + Shift + J
。
此外,我使用BracketHighlighter插件以高亮显示配对括号以及当前光标所在区域,效果如下:
命令行(Command Line)
尽管提供了Python控制台,但Sublime Text的控制台仅支持单行输入,十分不方便,所以我使用SublimeREPL以进行一些编码实验(Experiments)。
其它(Miscellaneous)
尽管我试图在本文包含尽可能多的Sublime Text实用技能,但受限于篇幅和我的个人经验,本文仍不免有所遗漏,欢迎在评论里指出本文的错误及遗漏。
下面是一些可能有用但我很少用到的功能:
- 宏(Macro):Sublime Text支持录制宏,但我在实际工作中并未发现宏有多大用处。
- 其它平台(Other Platforms):本文只介绍了Windows平台上Sublime Text的使用,不过Linux和OS X上Sublime Text的使用方式和Windows差别不大,只是在快捷键上有所差异,请参考Windows/Linux快捷键和OS X快捷键。
- 项目(Projects):Sublime Text支持简单的项目管理,但我一般只用到文件夹。
- Vim模式(Vintage):Sublime Text自带Vim模式。
- 构建(Build):通过配置,Sublime Text可以进行源码构建。
- 调试(Debug):通过安装插件,Sublime Text可以对代码进行调试。
快捷键列表(Shortcuts Cheatsheet)
我把本文出现的Sublime Text按其类型整理在这里,以便查阅。
通用(General)
↑↓←→
:上下左右移动光标,注意不是不是KJHL
!Alt
:调出菜单Ctrl + Shift + P
:调出命令板(Command Palette)Ctrl + `
:调出控制台
编辑(Editing)
Ctrl + Enter
:在当前行下面新增一行然后跳至该行Ctrl + Shift + Enter
:在当前行上面增加一行并跳至该行Ctrl + ←/→
:进行逐词移动Ctrl + Shift + ←/→
进行逐词选择Ctrl + ↑/↓
移动当前显示区域Ctrl + Shift + ↑/↓
移动当前行
选择(Selecting)
Ctrl + D
:选择当前光标所在的词并高亮该词所有出现的位置,再次Ctrl + D
选择该词出现的下一个位置,在多重选词的过程中,使用Ctrl + K
进行跳过,使用Ctrl + U
进行回退,使用Esc
退出多重编辑Ctrl + Shift + L
:将当前选中区域打散Ctrl + J
:把当前选中区域合并为一行Ctrl + M
:在起始括号和结尾括号间切换Ctrl + Shift + M
:快速选择括号间的内容Ctrl + Shift + J
:快速选择同缩进的内容Ctrl + Shift + Space
:快速选择当前作用域(Scope)的内容
查找&替换(Finding&Replacing)
F3
:跳至当前关键字下一个位置Shift + F3
:跳到当前关键字上一个位置Alt + F3
:选中当前关键字出现的所有位置Ctrl + F/H
:进行标准查找/替换,之后:Alt + C
:切换大小写敏感(Case-sensitive)模式Alt + W
:切换整字匹配(Whole matching)模式Alt + R
:切换正则匹配(Regex matching)模式Ctrl + Shift + H
:替换当前关键字Ctrl + Alt + Enter
:替换所有关键字匹配
Ctrl + Shift + F
:多文件搜索&替换
跳转(Jumping)
Ctrl + P
:跳转到指定文件,输入文件名后可以:@
符号跳转:输入@symbol
跳转到symbol
符号所在的位置#
关键字跳转:输入#keyword
跳转到keyword
所在的位置:
行号跳转:输入:12
跳转到文件的第12行。
Ctrl + R
:跳转到指定符号Ctrl + G
:跳转到指定行号
窗口(Window)
Ctrl + Shift + N
:创建一个新窗口Ctrl + N
:在当前窗口创建一个新标签Ctrl + W
:关闭当前标签,当窗口内没有标签时会关闭该窗口Ctrl + Shift + T
:恢复刚刚关闭的标签
屏幕(Screen)
F11
:切换普通全屏Shift + F11
:切换无干扰全屏Alt + Shift + 2
:进行左右分屏Alt + Shift + 8
:进行上下分屏Alt + Shift + 5
:进行上下左右分屏- 分屏之后,使用
Ctrl + 数字键
跳转到指定屏,使用Ctrl + Shift + 数字键
将当前屏移动到指定屏
延伸阅读(Further Reading)
书籍(Books)
- Mastering Sublime Text:我读过的唯一一本关于Sublime Text的书籍,书中介绍的插件很实用,但对编辑技巧介绍不全。
- Instant Sublime Text Starter:另外一本关于Sublime Text的书,我没有读过。
链接(Links)
- 官方文档:http://www.sublimetext.com/docs/3/
- 官方论坛:http://www.sublimetext.com/forum/
- Stack Overflow的Sublime Text频道:
- http://stackoverflow.com/questions/tagged/sublimetext
- http://stackoverflow.com/questions/tagged/sublimetext2
- http://stackoverflow.com/questions/tagged/sublimetext3
- 非官方文档:http://sublime-text-unofficial-documentation.readthedocs.org/ 甚至比官方文档还要全面!
- Package Control:https://sublime.wbond.net/ 大量的Sublime Text插件和主题。
视频(Videos)
- Getting Started with SublimeText:https://www.youtube.com/watch?v=04gKiTiRlq8
- Sublime Text Pefect Workflow:https://www.youtube.com/watch?v=bpEp0ePIOEM&list=PLuwqxbvf3olpLsnFvo06gbrkcEB5o7K0g
常用快捷键
参考链接:
- http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html
- https://www.zhihu.com/question/24896283
- https://www.zhihu.com/question/28761608