基本概念

概览

这里我们将解释一些基本概念,只有在熟悉这些概念后,你才能彻底理解这份文档的所有内容。

一般公约

这份文档是从Windows用户的角度撰写的,但是文档中提到的大部分内容只需要很小的变化就能在其他平台正常工作。

除非特别说明,否则文档中所有的相对路径(例如 Packages/User)都是相对于 数据目录 的。后文将解释 数据目录 的含义。

在介绍快捷键的时候,我们假定你正在使用系统默认的按键设定。由于Submline Text按键与命令映射的工作方式,有些按键组合可能与你正在使用键盘的布局不同

能力越大,需要处理的问题也就越多

Sublime Text是一款高度可扩展、可定制的文本编辑器。它已经为你提供了许多直接使用的功能,尽管如此,如果你愿意花时间根据自己的需求进行配置,ST将为你提供超高的生产力。本文档将介绍你所需要知道的配置Sublime Text的一切内容。

我们将在接下来的几段中,简单说明一些有关Sublime Text的内容,这些内容只有在使用这个编辑器一段时间后才能被真正理解。请不断地探索这个编辑器,同时也经常来翻翻这个文档,总有一天文档中的所有内容你都会烂熟于心。

不可否认,Sublime Text是码农的神器(译者注:据说是网页前端神器),尽管如此你没必要一定要是程序员才能使用它,即使你不做任何配置,你也会发现这是你写作工作的一个完美工具。当然了,如果你是一名黑客,那么你很有可能会把今天剩下的时间都用在探索这个编辑器上了。

Data(数据) 目录

Sublime Text把几乎所有用户感兴趣的内容都存放在所谓的数据目录下。这个目录的位置是平台相关的:

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

对于使用 portable installations(便携安装版) 的用户,数据目录的位置则是 Application/Data 。这里 Application 部分指的是你把包含Sublime Text的压缩包解压的位置。

需要注意的是,虽然被称作 Data 目录,但只有便携安装版的用户,才能真正找到一个叫 Data 的目录。对于其他类型的安装方式,数据目录的位置请参考上面的说明。

Packages(包组) 目录

这是一个 关键目录 :编辑器所支持的编程或标记语言的所有资源都被存放在这里。一个存放对Sublime Text而言有意义文件的文件夹就被叫做一个

你可以通过Sublime Text的菜单来访问这个目录(Preferences | Browse Packages…),也可以通过调用 sublime.packages_path() 这个API来访问。在本文档中,我们使用 包组包组路径包组文件夹 以及 包组目录 来指代这个文档。

User(用户)

Packages/User 这个目录是一个存放所有用户自定义的插件、代码片段、宏等等的大杂烩。请把这个目录看成是你在包组目录中的私人领地。Sublime Text 2在升级的过程中永远不会覆盖 Packages/User 这个目录中的内容。

Sublime Text是可编程的

这部分信息对码农来说格外有趣。而对于其他的Sublime Text用户来说,你只需要知道Sublime Text允许会编程的人为这个编辑器添加他们自己需要的功能。(所以赶紧去学学编程吧,真的很有趣!)

( 译者注:小伙子,干什么不好非要当码农,此间慎入! ;) )

Sublime Text自带了一个内嵌的Python解释器。这对于检视Sublime Text的各种设置项,以及 在开发插件过程中快速简单测试API调用的效果来说都是非常有用的!

只需按下组合件 Ctrl+` 或者从菜单中选择 View | Show Console,就能呼出Python控制台。

这是Sublime Text中的Python控制台:

_images/basic-concepts-console.png

有点听迷糊了?咱们再说一些背景知识吧:

Python 是一门对初学者而言非常容易上手,同时又具有强大能力的编程语言。 而 API 则是对‘Application Programming Interface(应用程序编程接口)’的缩写,这实际指的是Sublime Text为用户准备的可以配置它的方式。换句话说,Sublime Text通过Python这门语言为用户提供了访问其内部的方式。最后需要说明的是 控制台,它是Sublime Text内部的一个可以输入并运行Python代码片段的小窗口。控制台同时也负责显示由Sublime Text以及相关插件输出的文本信息。

操作系统中的Python vs Sublime Text 2内嵌的Python

Windows 以及 Linux 平台,Sublime Text的Python解释器是完全与系统的Python解释器分离的。

而在 OS X 平台上,Sublime Text使用的则是系统的Python解释器。这就导致对系统Python解释器版本所做的修改,可能会对Sublime Text造成影响。比如使用MacPorts提供的解释器替换系统默认的解释器,就可能造成一些问题。

这个内嵌的解释器只是为了与插件API作交互,并不应该用来进行通用Python应用的开发。

包组,插件,资源以及其他你现在可能并不理解的东西

就目前而言,你只需要记住Sublime Text中几乎所有的东西都能根据你的需求作调整。这种巨大的灵活性解释了你为什么要学如此多种类型的配置文件——总得有个地方记录你的设置吧!

Sublime Text中的配置文件允许你调整编辑器的表现,添加宏和代码片段,以及创造更多新的特性,注意这里的 特性 指的是 ‘你能想到的一切’。好吧,也许 一切 说的有点夸张了,但是Sublime Text绝对为你提供了巨大的控制权。

这些配置文件就是一些遵循特定结构或 格式 的文本文件:在配置文件中,JSON文件占主导地位,有时你也会发现一些XML文件。

在本文档中,我们把这些完全不同的配置文件总体的称为 资源 。Sublime Text会在包组路径中寻找这些资源。为了让文件夹结构不显得那么杂乱,编辑器把包含为同一功能服务的各种资源的文件夹称为一个 *包*(举例来说,也许某个包中的资源都是为更快的编写email服务的,亦或都是为某个编程语言服务的)。

Textmate兼容性

这部分信息主要是为从Textmate转型使用Sublime Text的用户准备的。Textmate,它是Mac平台的一个编辑器。

(译者注:Textmate是Mac平台很成功的一款编辑器)

除了命令有些差距之外,Sublime Text 2与Textmate的bundles(包)能较好的兼容。更进一步的说,为了识别为TM编写的bundles,Sublime Text要求所有的语法定义文件都包含 .tmLanguage 扩展名,并且所有的配置文件都有 .tmPreferences 扩展名。这意味着即使 .plist 文件保存在 Syntaxes*或者 *Preferences 目录下,它们也会被忽略。

模拟vi/Vim

此信息对于正在使用Sublime Text的Vim用户非常有用。vi是一个古老的模式编辑器,允许用户通过键盘执行所有操作。Vim是vi的现代版本,现在仍在广泛使用。

Sublime Text通过名为 Vintage 的包来模拟vi的操作方式。默认情况下Vintage包是被 忽略 的。请阅读 Vintage 的官方文档来了解更多内容。

Vintage的进化版名为Vintageous,提供更好的vi/Vim编辑体验,并且比Vintage更新。Vintageous是一个开源项目。

模拟emacs

此信息对于正在使用Sublime Text的emacs用户非常有用。emacs是程序员的另一个流行编辑器。

Sublime Text不提供任何内置的模拟emacs功能,但你可以尝试使用由其他Sublime Text用户创建的第三方软件包。