Erik's Blog

Sublime Text 使用指南

(更新于 )Editor#Sublime Text

Sublime Text 简介

Sublime Text is a sophisticated text editor for code, markup and prose. You’ll love the slick user interface,extraordinary features and amazing performance.

Sublime Text 是一款跨平台可扩展的编辑器。支持多行编辑等功能。Sublime 几乎任何东西都是可定制的。快捷键设置、菜单、代码片段、宏、自动补全等,都可以简单地通过 JSON 文件定制,还可以根据不同的文件类型和项目指定不同的设置。

恢复到新安装的状态

如果你以前安装过 Sublime Text,卸载或重新安装后系统还是会保留之前的设置。如果你想完全卸载 Sublime Text,或者想将她恢复到新安装的状态,只需要退出 Sublime Text,删除你的数据文件夹,重新启动 Sublime Text 即可。

  • 各系统数据文件夹存放位置

OS X : ~/Library/Application Support/Sublime Text 3 Windows : %APPDATA%\Sublime Text 3 Linux : ~/.config/sublime-text-3

同样,你也可以用你的数据文件夹替换到另一个系统,这样两个系统就会使用完全相同的配置。这对于同时使用多太电脑多个系统的同学来说实在是太方便了~

这是我放在 GitHub 上的 我的 Sublime Text 数据文件

安装(Installation)

打开 Sublime Text 官网 下载 Sublime Text 3 并安装。(Windows 安装时勾选Add to explorer context menu会在右键单击文件时出现Open with Sublime Text选项)。

添加右键菜单 Open with Sublime Text

Command Line 命令:subl

subl 命令是 Sublime Text 提供的命令行工具。

Mac 的 CLI 工具在 Sublime Text.app/Contents/SharedSupport/bin/subl,需要添加到系统命令:

# 软连接方式
sudo ln -s "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" /usr/bin/subl

# alias 方式
alias subl=\''/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'\'
alias subl=\'/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl\'

Window 的 subl.exe 文件位于 Sublime Text 的安装目录下,默认是不能直接使用该命令的,所以要添加 Sublime Text 到环境变量。

使用Win + R快捷键运行sysdm.cpl打开系统属性

运行sysdm.cpl

然后在高级选项卡里选择环境变量(N)...,编辑系统变量Path,加入 Sublime Text 的安装目录 (例如 D:\Develop\Sublime Text 3 )。

然后就可以使用 subl 命令了。

  • 使用方法
subl                             打开Sublime Text
subl [arguments] [files]         打开给定的文件
subl [arguments] [directories]   打开给定的目录
subl [sublime-project]           打开Sublime Text项目
subl [arguments] -               编辑 stdin
  • 参数
  --project <project>: 加载给定的项目
  --command <command>: 运行给定的命令
  -n or --new-window:  打开一个新窗口
  -a or --add:         在当前窗口中添加文件夹
  -w or --wait:        等待返回直到文件关闭
  -b or --background:  不要激活程序
  -s or --stay:        文件关闭后,保持程序的激活状态
  -h or --help:        显示帮助
  -v or --version:     显示版本

打开文件时可以使用 :line:line:column 后缀定位打开后光标的位置。

subl command

  • 使用 Sublime Text 作为默认编辑器
export EDITOR='subl -w'

安装Package Control

The Sublime Text package manager that makes it exceedingly simple to find, install and keep packages up-to-date.

Package Control 是 Sublime Text 的插件管理器,使用它能简单地进行查找、安装和更新 Sublime Text 插件。

打开 Package Control INSTALLATION 页面,复制 SUBLIME TEXT 3 标签下是代码。 使用 Ctrl + ** / **control + 快捷键或在菜单中选择 View > Show Console 打开 Sublime Text 控制台,粘贴并运行复制到的代码。

import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; 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://packagecontrol.io/' + 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)

使用 Ctrl + Shift + P / command + shift + p 打开命令板,输入 PC 出现 Package Control: 字样,表明 Package Control 安装成功。

Package Control安装完成

成功安装 Package Control 之后,我们就可以方便的管理 Sublime Text 的各种插件了。 使用 Ctrl + Shift + P / command + shift + p 打开命令板,输入 PCIP 再按 Enter 键,则会弹出插件选择列表。搜索所需的插件按 Enter 键安装。

使用Package Control安装插件

界面

窗口

Sublime Text 是一个多窗口多标签的编辑器:我们既可以开多个 Sublime Text 窗口,也可以在一个 Sublime Text 窗口内开多个窗格。

使用 Ctrl + Shift + N / command + shift + n 创建一个新窗口。当窗口内没有标签时,使用 Ctrl + W / command + w 关闭该窗口。

打开和关闭窗口

窗格

使用 Ctrl + N / command + N 在当前窗口创建一个新窗格,command + W 关闭当前窗格,Ctrl + Shift + T / command + shift + T 恢复刚刚关闭的窗格。 另外还可以使用 Ctrl + K, Ctrl + ↑ / command + K, command + ↑ 新建窗格, Ctrl + K, Ctrl + ↓ / command + K, command + ↑ 关闭窗格。 可以在菜单 View -> Layout 中选择窗格的布局。使用 File -> New View into File 菜单可以为一个文件同时打开多个窗格。

layout 菜单

使用 Alt + Shift + 2 进行左右分屏,Alt + Shift + 8 进行上下分屏,Alt + Shift + 5 进行上下左右分屏(即分为四屏)。

分屏之后,使用 Ctrl + 数字键 跳转到指定屏,使用 Ctrl + Shift + 数字键 将当前屏移动到指定屏。

侧边栏(Sidebar)

Sublime Text 支持以文件夹做为单位进行编辑,这在编辑一个文件夹下的代码时尤其有用。 在菜单 FileOpen Folder,你会发现右边多了一个侧栏,这个侧栏列出了当前打开的文件和文件夹的文件。 使用 Ctrl + K, Ctrl + B 显示或隐藏Sidebar,使用 Ctrl + P 快速跳转到文件夹里的文件。 使用 Ctrl + 0 可以切换到 Sidebar;使用方向键导航文件;使用 Esc 返回到 view。

全屏

Sublime Text 有两种全屏模式:普通全屏和无干扰全屏。F11 切换普通全屏,Shift + F11 切换无干扰全屏。再次使用 F11Shift + F11 退出全屏。

编辑

使用方向键 对应光标向 上下左右 移动。

Ctrl + Enter 在当前行下面新增一行然后跳至该行;Ctrl + Shift + Enter 在当前行上面增加一行然后跳至该行。

新增行

Ctrl + ←/→ 进行逐词移动,Ctrl + Shift + ←/→ 进行逐词选择。

逐词选择和移动

Ctrl + ↑/↓ 移动显示区域,Ctrl + Shift + ↑/↓ 移动当前行。

移动行和现实区域

Ctrl + Shift + D 复制当前行

复制当前行

ALT + . 关闭当前 HTML 标签

关闭当前 HTML 标签

选择

Sublime 可以同时选择多个区域,然后同时进行编辑。

  • 使用鼠标

使用 Shift + 鼠标右键 进行区块选择,Ctrl + Shift + 鼠标右键 添加新选区,Alt + Shift + 鼠标右键 从选区中删除。

使用鼠标

使用 Ctrl + 鼠标中间 添加 按住 Ctrl 键,在需要放光标的位置点击鼠标左键

  • 使用快捷键

使用 Ctrl + Alt + ↑Ctrl + Alt + ↓ 来添加选区的上一行和下一行。

添加选区

Alt + Shift + ← Alt + Shift + → 选中相邻的单词

选中相邻的单词

Ctrl + Shift + M 以括号扩展选区

以括号扩展选区

Ctrl + Shift + J 以缩进扩展选区

以缩进扩展选区

Ctrl + Shift + 空格 扩大选区范围

Ctrl + D 选择当前光标所在的词并高亮该词所有出现的位置,再次 Ctrl + D 选择该词出现的下一个位置,在多重选词的过程中,使用 Ctrl + K,Ctrl + D 进行跳过,使用 Ctrl + U 进行回退,使用Esc退出多重编辑。

选择相同项

Alt + F3 选择所有当前词

选择所有当前项

多重选词的一大应用场景就是重命名,我们可以通过多重选词+多重编辑进行直观且便捷的重命名。

多重选词进行重命名

有时我们需要对一片区域的所有行进行同时编辑,Ctrl + Shift + L 可以将当前选中区域打散,然后进行同时编辑:

有打散自然就有合并,Ctrl + J 可以把当前选中区域合并为一行:

使用 Ctrl+Shift+L 将选区拆分成多个单行选区,使用 Ctrl + L 扩展选区到该行的结尾

置换

选中两个或以上,使用 Ctrl + T 可置换选区顺序。

置换

文件导航和管理

Goto Anything

Goto Anything 可以快捷地帮你导航你的项目文件,仅使用少量的关键字就能打开文件并完成符号跳转、行号跳转、单词跳转等。 使用 Ctrl + P 打开 Goto Anything 面板,输入文件名的部分字符,使用 Enter 定位到当前项并退出 Goto Anything,使用 也可以定位到当前项,但不会退出 Goto Anything,使用 Esc 关闭 Goto Anything。

Goto Anything 支持操作符,这些操作符可以打开 Goto Anything 面板后进行输入,也可以使用快捷键直接打开面板。这些操作符能够联合使用。 @symbol 会在当前文件中查找名为 symbol 的符号并列出(例如类名和函数名,但无法深入到变量名),快捷键 Ctrl + R#term 会对 term 进行模糊搜索并高亮所有匹配项,你可以通过文件名的前缀、首字母或是某部分进行匹配,快捷键 Ctrl + ; :line_number 会跳转到指定行,快捷键 Ctrl + G

项目与工作区

项目(Projects)

Sublime Text 支持以项目为单位管理工作内容,可以使用 Project → Save Project As.... 菜单将当前项目保存。保存下来的项目可以通过 Ctrl + Alt + P 进行切换。 项目切换时,未被保存的更改也会被保留,所有修改将会在下次打开项目时恢复。

  • The .sublime-project 格式

项目的元数据被保存在一个以 .sublime-project 结尾的 JSON 文件中。可以手动更改该文件内容。

元数据分为三个最重要的部分:folders:包含的文件夹;settings:项目的特定设置;build_systems:项目的 build 系统。

{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["backup"]
        },
        {
            "path": "docs",
            "name": "Documentation",
            "file_exclude_patterns": ["*.css"]
        }
    ],
    "settings":
    {
        "tab_size": 8
    },
    "build_systems":
    [
        {
            "name": "List",
            "cmd": ["ls"]
        }
    ]
}

Folder 选项

项目名 是否必须 介绍
path 必须 路径,可为绝对路径和相对路径
name 可选 出现在侧栏的名称
folder_exclude_patterns 可选 通配符,排除的文件夹
folder_include_patterns 可选 通配符,包含的文件夹
file_exclude_patterns 可选 通配符,排除的文件
file_include_patterns 可选 通配符,包含的文件

工作区(Workspaces)

.sublime-project 一同出现的还有一个 .sublime-workspace 文件。

工作区可以看作是同一项目的不同视图。例如,在某些功能上,您可能希望只有有几个特定的文件打开,或者你使用不同的窗格布局。

工作区和项目很相似。创建一个新的工作区,选择 Project → New Workspace for Project。要保存当前的工作区,选择 Project → Save Workspace As...

切换不同的工作区,使用 Ctrl + Alt + P,就是你做的项目。

工作区的元数据也存储在 JSON 文件中。但不建议将工作区文件转换为源代码库。

查找和替换

Sublime Text 提供了强大的查找和替换功能,有多种方法可以进行简单快速地进行查找和替换。

搜索区域

Sublime Text 支持在三种搜索范围内进行查找和替换:选区内搜索、当前文件搜索和多文件搜索。

  • 选区内搜索

选区内搜索功能并没有对应的快捷键,需要在用户设置中开启:

"auto_find_in_selection": true,

开启之后在选中文本的状态下范围内搜索就会自动开启。选区内搜索一般用于重命名局部变量等。

  • 单文件搜索

在没有选区的情况下使用 Ctrl + F 打开标准搜索面板,使用 Ctrl + I 打开增量搜索面板。增量搜索与常规搜索之间的唯一差别在于输入后的行为。在增量搜索中,会关闭搜索面板;在常规搜索面板中会保留搜索面板。

输入关键字后按 Enter 跳至关键字的下一个位置, Shift + Enter 跳至上一个位置, Alt + Enter 选中关键字出现的所有位置。

双击选中或使用 Shift + ←/→Ctrl + D 快捷键选中要搜索的关键字,然后 F3 可以跳到其下一个出现位置,Shift + F3 跳到其上一个出现位置,此外还可以用 Alt + F3 选中其出现的所有位置(之后可以进行多重编辑,也就是快速替换)。

使用 Ctrl + H 进行标准替换,输入替换内容后,使用 Ctrl + Shift + H 替换当前关键字,Ctrl + Alt + Enter 替换所有匹配关键字。

  • 多文件搜索

使用 Ctrl + Shift + F 可以开启多文件搜索替换(此快捷键和搜狗输入法的简繁切换快捷键有冲突)

多文件搜索替换默认在当前打开的文件和文件夹进行搜索/替换,我们也可以指定文件/文件夹进行搜索/替换。

搜索模式

Sublime Text 的查找有不同的模式:Alt + R 切换正则表达式模式,Alt + C 切换大小写敏感模式,Alt + W 切换精确匹配模式。

Sublime Text 可以使用 Perl 兼容的正则表达式进行查找,具体请查看:

Boost library documentation for regular expressions

Boost library documentation for format strings

Build (批处理)

Build 系统允许你调用外部程序,但该程序必须包含在环境变量 PATH 中。Build 系统用一个以 .sublime-build 为扩展名 JSON 文件编写,例如:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

必须项,这个选项相当于在命令行中执行 python -u /path/to/current/file.ext

Build 文件保存在 Packages 文件夹下,使用 F7ToolsBuild 执行。

Java 编译运行的例子

  1. 增加编译运行批处理文件 runJava.bat 并放入可执行路径,脚本内容如下:
@ECHO OFF

cd %~dp1
ECHO Compiling %~nx1.......
IF EXIST %~n1.class (
    DEL %~n1.class
)
javac -encoding utf-8 %~nx1
IF EXIST %~n1.class (
    ECHO -----------OUTPUT-----------
    java %~n1
)

注:javac -encoding utf-8 %~nx1 的意义是指定源文件是 UTF-8 格式,如果你的源文件是其他格式,请修改或删除 -encoding utf-8

  1. 将 Packages 目录下 Java.sublime-package 文件解压缩,修改 JavaC.sublime-build 文件后重新压缩,修改内容如下:
{
    "shell_cmd": "runJava.bat \"$file\"",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",
    "encoding": "gbk"
}

注:第一行的 runJava.bat 即上面的脚本文件,最后一行 "encoding": "gbk" 的意义是将输出编码定义为本地中文代码页。如果你编译运行其他程序是发生“[Decode error - output not utf-8]”错误,都可以用此方法解决问题。