本文系统全面的介绍了 Sublime Text,旨在成为最优秀的 Sublime Text 中文教程。
前言(Prologue)
Sublime Text 是一款跨平台代码编辑器(Code Editor),从最初的 Sublime Text 1.0,到现在的 Sublime Text 3.0,Sublime Text 从一个不知名的编辑器演变到现在几乎是各平台首选的 GUI 编辑器。而这样优秀的编辑器却没有一个靠谱的中文教程,所以我试图通过本文弥补这个缺陷。
编辑器的选择(Editor Choices)
从初学编程到现在,我用过的编辑器有 EditPlus、UltraEdit、Notepad++、Vim、TextMate 和 Sublime Text,如果让我从中推荐,我会毫不犹豫的推荐 Vim 和 Sublime Text,原因有下面几点:
跨平台
:Vim 和 Sublime Text 均为跨平台编辑器(在 Linux、OS X 和 Windows 下均可使用)。作为一个程序员,切换系统是常有的事情,为了减少重复学习,使用一个跨平台的编辑器是很有必要的。
可扩展
:Vim 和 Sublime Text 都是可扩展的(Extensible),并包含大量实用插件,我们可以通过安装自己领域的插件来成倍提高工作效率。
互补
:Vim 和 Sublime Text 分别是命令行环境(CLI)和图形界面环境(GUI)下的最佳选择,同时使用两者会大大提高工作效率。
个人背景(Personal Background)
我是一名非常典型的程序员:平时工作主要在 Linux 环境下使用 Java 和 Python,偶尔会用 HTML+CSS+JavaScript 编写网页;业余时会在 Windows 环境编写一些 C# 程序(包括控制台程序(Console Application)和移动应用(Mobile App),也会玩一些非主流语言(比如 Haskell,ML 和 Ruby 等)以拓展见识。
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
调出搜索框进行搜索:
Sublime Text的搜索框
以及使用
Ctrl + H
进行替换:
Sublime Text的替换框
关键字查找&替换
对于普通用户来说,常规的关键字搜索就可以满足其需求:在搜索框输入关键字后
Enter
跳至关键字当前光标的下一个位置,
Shift + Enter
跳至上一个位置,
Alt + Enter
选中其出现的所有位置(同样的,接下来可以进行快速替换)。
Sublime Text 的查找有不同的模式:
Alt + C
切换大小写敏感(Case-sensitive)模式,
Alt + W
切换整字匹配(Whole matching)模式,除此之外Sublime Text还支持在选中范围内搜索(Search in selection),这个功能没有对应的快捷键,但可以通过以下配置项自动开启。
尽管是一个文本编辑器,Sublime Text 能够对代码符号进行一定程度的索引。
Ctrl + R
会列出当前文件中的符号(例如类名和函数名,但无法深入到变量名),输入符号名称
Enter
即可以跳转到该处。此外,还可以使用
F12
快速跳转到当前光标所在符号的定义处(Jump to Definition)。
跳转到符号
比较有意思的是,对于 Markdown,
Ctrl + R
会列出其大纲,非常实用。
Markdown大纲
跳转到某行
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
进行上下左右分屏(即分为四屏)。