以下是由 Wes Bos 撰写的客座文章。 Wes 一直在撰写有关 Sublime Text 及其为代码编辑带来的优秀功能的文章。 他现在推出了一本新书和视频包:Sublime Text 高级用户。 我最近在一次会议上见到了他,并观看了他关于 Sublime Text 的演讲。 会议上对此议论纷纷。 新手们惊叹不已,而老手们也学到了新技巧。 这里,Wes 将分享一些与我们前端人员相关的最佳功能。
随着 Sublime Text 成为当今最热门的 Web 开发编辑器之一,了解与前端开发相关的编辑器的进进出出至关重要。 本文并非关于 Sublime Text 的逐步指南,而是充满了热烈的技巧、窍门和包,可以让你成为 Sublime Text 的高手。
语法高亮器
现在已经是 2015 年了,在过去几年中发生了很多变化 - CSS 出现了新的功能,JavaScript 引入了新的功能和语法,我们还拥有将一些新语言编译成 HTML、CSS 或 JavaScript 的语言。 Sublime 附带的语法高亮器已经过时,甚至有些语言没有提供语法高亮器。
以下包将提供最佳的语法高亮功能。 即使你已经拥有了所有语言的语法高亮器,也要阅读一下,你可能希望更改其中一些。
JavaScript Next 语法高亮器提供了比默认 JavaScript 高亮器更好的代码高亮功能,以及对 ECMAScript 6 功能的支持,例如模块、简洁方法、箭头函数、类、生成器和访问器(ES5)。
CSS3 为规范中的每个 CSS3 功能提供高亮显示。 这些功能包括所有新功能,以及尚未实现的功能。 这应该完全取代你已有的任何 CSS 语法高亮。
Sass 用户应安装 SCSS 包。 注意 - 经常会有人错误地搜索并安装 Sass,而实际上他们并没有使用 Sass 语法,而是 Scss 语法 - 确保你启用了正确的语法,以便所有其他包(如 Emmet)能够正常工作。

当然,如果你的 CSS 武器是 Stylus 和 LESS,那么也可以安装这两个包。
编写 Coffeescript? 确保你安装了 Better-Coffeescript 包。 重要的是要获取 **better-coffeescript** 包,因为常规的 CoffeeScript 包不再维护。 还有一个 Typescript 包 适用于该阵营的开发人员。
Haml 包扩展了默认的 Haml 包,包括嵌套语言(如 JS、CSS、Sass 等),以便你可以维护你的高亮显示和代码片段。 Slim 和 Jade 包为这些新型标记语言提供了急需的高亮显示功能。
包和插件
Sublime 的流行很大程度上归功于社区创建的无尽的有趣和有用的包。 如果你刚接触 Sublime,可以使用 Package Control 添加和管理你的包。
虽然我们可以在一天中不断地谈论最好的 Sublime 包,我希望你在评论中也能这么做,但对于使用 HTML、CSS 和 JavaScript 的前端开发人员来说,以下是一些必备的包。
颜色高亮器
在样式表中使用颜色时,使用某种视觉辅助工具来显示实际颜色会很有帮助。 颜色高亮器会扫描你的样式表,并通过用该颜色填充背景来突出显示你的颜色名称、十六进制代码或 RGBA。 可以选择用颜色下划线或在边距中以圆形显示颜色。

最近,添加了对 Sass、LESS 和 Stylus 变量的支持,这使得该工具可以适应几乎所有工作流程!
Emmet
几乎每个人都已知 Emmet,并且许多人从 Zen Coding 时代就一直在使用它。 但是,我发现许多开发人员错过了 Emmet 的一些强大功能。
HTML
Emmet 非常适合快速编写 HTML。 只需键入所需标记的 CSS 选择器,然后按 Tab 键。 使用 Jade、Slim 或 Haml? Emmet 也适用于这些标记语言!

这可以像你想要的那样简单或复杂。 以下是一些示例 - 务必查看 备忘单,了解使用 Emmet 与 HTML 的所有可能方法。
- `element` + `tab` 创建该元素并将光标置于元素内部
- `span` + `tab` →
<span></span>
- `p` + `tab` →
<p></p>
- `span` + `tab` →
- `element.className` 或 `element#ID` + `tab` 创建具有关联类或 ID 的元素
- `span.hello` + `tab` →
<span class="hello"></span>
- `p.odd.warning` + `tab` →
<p class="odd warning"></p>
- `div#contact` + `tab` →
<div id="contact"></div>
- `span.hello` + `tab` →
- `element>childElement` + `tab` 创建嵌套元素
- `ul>li` + `tab` →
<ul><li></li></ul>
- `p>span` + `tab` →
<p><span></span></p>
- `ul>li` + `tab` →
- `[element*5]` + `tab` 创建该元素的指定数量
- `p.hello*2` + `tab` →
<p class="hello"></p><p class="hello"></p>
- `p.hello*2` + `tab` →
你也可以使用 `$` 作为增量的占位符。 使用 `$$` 表示前导零。
`li.item$*3` + `tab` →
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>
使用方括号表示属性,使用花括号表示元素文本。
`figure*2>img[src=”dog$.jpg”]+figcaption{This is dog $}` →
<figure>
<img src="dog1.jpg" alt="">
<figcaption>This is dog 1</figcaption>
</figure>
<figure>
<img src="dog2.jpg" alt="">
<figcaption>This is dog 2</figcaption>
</figure>
CSS
学习 Emmet 的 CSS 功能是前端开发人员可以做的最佳投资之一。 它不仅可以提高你的速度,还可以减少我们所有人都会犯的愚蠢错误。
Emmet 的 CSS 功能通过键入你想要的 CSS 属性/值的近似值来工作。 它没有代码片段,而是依赖于模糊匹配,根据你的输入做出最佳猜测。
posrel
→position: relative;
posab
→position: absolute;
fl
→float:
fr
→float: right;
db
→display: block;
dib
→display: inline-block;
tdn
→text-decoration: none;
c
→color: #
w
→width:
w100
→width: 100px;
w100p
→width: 100%;
p
→padding:
p10
→padding: 10px;
p10p
→padding: 10%;
bt1-s-red
→border-top: 1px solid red;
你明白了 - 花时间重新训练你的大脑使用这些模糊匹配,而不是完全键入所有属性和值,是值得的。
Sublime Linter
代码 lint 是一个重要的步骤。 如果你以前从未使用过 linter,它是一种代码质量工具,用于检查错误和不良做法,并在你犯错时提醒你。
使用 Sublime Linter,你可以轻松地获得几乎所有语言的实时 lint 反馈。 作为前端开发人员,我们应该对 JavaScript 代码进行 lint,甚至对 CSS 代码进行 lint。 如果你犯了错误,Sublime Linter 会在边距中添加一个标记,提醒你错误。

主题和配色方案
还在使用默认的 Sublime 主题和配色方案吗? 或许是时候尝试一些不同的方案了。更改 Sublime 颜色包含两个部分——**配色方案**会改变代码语法高亮的顏色,而**主题**会改变编辑器外观,比如标签、侧边栏和命令面板的颜色。
从最新的 Sublime Text 3 版本开始,我们现在可以将特定的图标放置在侧边栏中。
无论你偏好明亮还是暗色,总有一款适合你的主题。以下是一些受欢迎的主题:
Solarized Dark
Solarized 是一款很棒的主题,也提供了浅色版本。它几乎可以在所有编辑器中使用,并且已经成为许多顶级开发人员喜爱的标准。

Cobalt2
这款 主题是我自己设计的,在过去的五年里不断调整和完善。它基于原始的 Cobalt 主题,并进行了许多改进,重点在于易于阅读,提供清晰锐利的对比度。

Seti UI
这是一款新主题,它是一款非常暗的主题,在整个界面中使用了蓝色的色块,形成鲜明的对比。

GoTo Anything
如果你来自其他编辑器,比如 Coda、Textmate 或 Dreamweaver,你可能依赖侧边栏来浏览文件。Sublime 引入了**GoTo Anything**的概念。简单来说,你可以用它来打开当前文件夹或项目中的任何文件。只需按下⌘
(Windows 上为 Ctrl
) + p
,它就会打开一个列表,你可以在其中开始输入文件名。该下拉列表支持**模糊匹配**,因此你无需担心拼写完全正确,甚至无需指定它所在的文件夹。
习惯了之后,GoTo Anything 还支持文件的行号 jquery.js:205
、列号 jquery.js:205:15
,以及一种叫做**符号**的东西 jquery.js@ajax
,它可以让你快速跳转到函数、方法或选择器。

你最喜欢哪个主题呢?
Sublime Text 充满了各种便捷的功能和插件,足够写一本书了!

你最喜欢哪些小技巧、秘诀或插件呢?
很棒的 Wes。我喜欢这个配色方案!
不久前,我发布了我的 偏好设置文件,如果有人感兴趣的话。
谢谢!如果有人感兴趣的话,这是我的偏好设置文件 - http://wes.io/YfBS
非常棒的文章,非常感谢!
以下是一款我一直使用的很棒的 Sublime Text 深色主题:
https://github.com/Samuelsson/YeahLikeDark
很棒的语法高亮和颜色。这里也有截图:
http://i.imgur.com/xgPz3Fm.png
很棒的文章。使用 Sublime 一段时间了,但仍然会遇到一些很棒的新插件。
你是怎么在侧边栏中获得这些文件类型图标的?
SublimeText 3(仍在测试版中)默认支持侧边栏图标。
Sublime Text 的最新测试版支持它们 - 然后你需要找到一个带有自定义图标的“主题” - 这篇文章中的两个主题都支持图标。
不过,你的主题也必须启用它,Soda 现在已经启用了。我不确定其他主题是否也启用。
我最大的技巧是不要过度使用 Sublime Text。即使你没有进行任何更改,主题也可能会随机崩溃。
听起来更像是 Sublime 中的错误,而不是“主题”崩溃。
对于大多数主题来说,它们只是图像和十六进制颜色值的集合。
我喜欢 Predawn 主题,它提供了一个干净、扁平、黑暗的 UI。
谢谢你的分享,这是一个很棒的主题。
我写了几篇关于它的文章。我认为你会喜欢的,包括文章内容和网站设计。当然!
我的 Sublime Text 前端插件
http://hoyheaprendido.es/plugins-para-sublime-text/
(西班牙语)
我们在 Behance 上一直在大量维护和使用这个插件:https://github.com/mrjoelkemp/sublime-dependents.
它允许开发人员更轻松地遍历他们的代码库,并通过轻松查看所有受影响的文件来了解他们的 JS 和 Sass 更改的影响。
我安装了 CSS3 包(https://github.com/y0ssar1an/CSS3/),作者在其中写了一条消息,说应该删除 Emmet,因为它的 CSS 快捷键“通常已经过时,而且它的自动补全功能完全淹没了该插件中的自动补全功能。”
对于一些依赖 Emmet 的开发人员来说,这可能是一个苦涩的药丸。
是的,如果你使用 Emmet,你必须全心全意地使用它 - 你不能使用其他 CSS 自动补全插件。至于它是否过时 - 我认为这完全不是真的。
Wes,
感谢你对此的意见。我不是一个重度 Emmet 用户,但我遇到过一些“对其赞不绝口”的开发人员。很高兴知道 Emmet 的 CSS 并没有像 CSS3 包作者声称的那样过时。
您好,
您知道 Sublime Text 3 中将 div 包裹在另一个 div 中的快捷键是什么吗?
从
到
哦,终于找到了。
CTRL+W(MacOS 使用 Emmet)。
请注意,你需要安装并启用 Emmet 才能使 Chris Coyier 的建议生效。
由于你表示所有权,你漏掉了“element’s”中的撇号。
你的句子末尾缺少句号。
这里还有很多其他评论也存在这样的错误。你为什么不去吐槽它们呢?
我一直在使用的一个插件,已经使用了几个月了,我发现它非常有用,那就是 STProjectMaker:https://github.com/bit101/STProjectMaker
“Sublime Text 2/3 插件,允许您从自定义模板创建任何类型的项目。”
另一个很棒的附加包是 GitGutter - https://github.com/jisaacks/GitGutter/
也看看“主题 - Flatgrammer”。
https://github.com/artifactdev/flatgrammer-theme
Sublime Colt 非常棒 - 与浏览器实时集成 Javascript:http://blog.codeorchestra.com/post/68973544159/sublime-colt-add-100-intellect-to-your.
视频:https://www.youtube.com/watch?v=qkscS1aI2JI
我已经安装了 CSS3 包。我已经安装了 SCSS 包。
如果我在一个
.scss
文件中,如何让所有 CSS3 包的自动完成功能生效?如果我将语法更改为 CSS3,那么当然所有 Sass 的突出显示都会消失。在我看来这很简单,但是如何将 CSS3 包与 SCSS 包合并呢?
这正是我想知道的。你弄明白了吗?
Colbalt2,确实如此。我安装它只是为了图标而已,哈哈。但是方块和高亮显示的标签也很棒。对于配色方案,我使用 ST 附带的 Monokai Bright。
我首选项中的一行代码非常棒,就是这一行
"trim_trailing_white_space_on_save": true
» 它会删除行末的所有空格。非常有用,因为它可以让我的代码/标记整洁 :)感谢您提供这篇很棒的文章。
我只是好奇
有人知道 PyV8 包是用来做什么的吗?它在 ST 中预安装了。
我很确定它是 PyV8 二进制文件 - Emmet 使用它。
它是 PyV8 二进制文件。Emmet 正常运行需要它,有时它会失效。如果 Emmet 停止工作,请删除这两个文件并重新开始。
作者推荐 CSS3 插件和 Emmet 似乎很奇怪,但是当你安装 CSS3 时,你会收到一条消息说它们无法协同工作。
看看 Git Gutter。它会在您自上次提交到仓库以来更改、添加和删除的行中放置符号。
我不能在办公室使用 Sublime Text,仅仅因为它没有很好的 FTP 支持,所以我使用 Eclipse PDT。
我不知道 PC 或其他 FTP 软件,但 Mac 上的 Transmit 与 Sublime Text 搭配使用效果很好。只需双击 Transmit 中的文件,它就会在 ST 中打开进行编辑,进行更改并按 Cmd+S。更新后的文件将自动上传到服务器。
http://d.pr/i/1itJP
Sublime SFTP 兄弟:http://wbond.net/sublime_packages/sftp
我在“列表包”中搜索时找不到 sFTP。
或者 https://sublime.wbond.net/packages/FTPSync 没有 SFTP 支持(只有 FTP),但它是免费的
@Sridhar,你说得对,它没有通过 Package Control 显示。联系作者:[email protected]
顺便说一下,奇怪的是,我的 Package Control 莫名其妙地消失了,所以我不得不重新安装它。不知道其他人是否遇到了同样的问题。
sFTP 包现已可用。
为什么不使用 MIT 许可的 GitHub Atom,它也提供大多数(如果不是全部)包 呢?
因为 JavaScript 驱动的编码环境的稳定性还不如原生应用程序稳定,就像原生应用程序与封装的 Web 应用程序的性能一样。不仅如此,如果它能做完全相同的事情,你为什么要使用其他东西呢?如果你习惯了一件事,就没有必要重新发明轮子。如果你指的是价格差异的替代方案,那么很明显,Atom 是开源的,而 ST3 则不是,这可能会让你对 ST3 敬而远之。不过,这不是工具的问题,而是使用工具的人的问题! ;)
我强烈推荐 Sublime Text 的 Git 和 GitGutter 包。第一个允许您在不离开编辑器的情况下,通过 go-to-anything 菜单执行大多数与 Git 相关的操作(添加、提交、推送、差异、查看状态等),第二个会在 gutter 中显示您当前 HEAD 的 Git 差异,因此您始终知道添加/更改/删除了什么内容。
不错的文章,之前不知道颜色高亮包 :)
不幸的是,我无法在 gutter 中显示彩色的圆圈。有人知道为什么吗?ColorHighlighter 设置似乎正确(
"icons": true
),所以可能是某些(ST3)设置没有正确设置。圆圈使用名为 ImageMagick 的东西 - 我写了一篇关于如何让它运行的文章。这篇文章使用了另一个包,但是 ImageMagick 的过程是相同的。http://wesbos.com/css-gutter-color-sublime-text/
作为 Sass ST2/3 包的(不可否认的疏忽)维护者,我很乐意实现对 SCSS 的全面支持,以及其他许多改进。(这可能需要完全重构,再加上大量的测试)。当前的包一直处于锁定模式,因为我合并的最后一个 pull request 导致了严重故障,我不能冒再次发生这种情况的风险。
如果您有兴趣或愿意提供帮助,请在 GitHub 上联系我。
很棒的文章,Chris。
我最喜欢的配色方案包是“Dayle Rees Color Schemes” - 它包含许多不同的方案供您尝试。
此外,Will Bond 的 SFTP 插件(与 Package Control 相同的人)每天为我节省了数千次点击和上传,我的效率大大提高。
我无法让 Color Highlighter 在变量上工作(在变量部分之外)。我想知道我错过了什么。
好吧,我可能没有错过任何东西。看起来如果我想正确理解的话,变量必须声明或导入到同一个文件中才能生效:https://github.com/Monnoroch/ColorHighlighter/issues/154
不错的文章!Emmet 绝对是我在设置新的 Sublime Text 安装时安装的第一个包之一。我也要尝试一下 Sublime Linter。
我额外使用的一些包是
GitGutter - 它会在 gutter 中显示漂亮的图标,让您知道是否对文件进行了更改。这样,我就可以在文本编辑器中进行操作,而不必在终端中检查
git diff
来查看是否进行了任何更改。SideBarEnhancements - 为您的侧边栏提供了一系列额外的文件和文件夹操作,例如新建文件、复制文件、在 Finder 中打开等。
过去几年我尝试过使用 Sublime,但始终无法将我的工作流程完美地融入其中。我一直感觉自己需要调整和修改每一个我想要的功能,才能得到我想要的功能。它似乎并不稳定。我觉得社区插件在实现上非常零散且不一致。
我并不是要完全否定 Sublime。我确实很欣赏它的速度,并且我认为它看起来非常漂亮。如果你觉得它很棒,那就太好了!
我现在使用的是 phpstorm,强烈推荐给任何想要尝试不同编辑器的人。和 Sublime 一样,它拥有大量的插件,几乎可以满足我在应用中遇到的所有需求,但它们与应用程序的集成程度更高。Jet Brains 开发了大部分核心插件,因此它们非常稳定且好用。总的来说,它在代码方面做了很多非常智能的事情,调试器很棒,使用 Git 也非常容易。
http://editorconfig.org/ 也是一个很棒的补充,尤其是在协作方面。
有没有关于创建 ST2/3 主题的文档?我大约一个月前搜索过,但一无所获。Cobalt2 确实看起来很不错。
绝对需要 EditorConfig!我的配置超级简单,但做了很多工作!
大家好,我购买了 Sublime Text 3,之前也用过。
* 这是一款很棒的产品。
* 速度非常快
* 非常适合从 VI 或 VIM 转移过来的用户
但是,就我而言,它没有我之前使用的工具那么有用。有一些文件类型我还是喜欢用 Sublime Text,因为它可以很好地处理一些文件;例如模板文件。
我一直在使用 Jet Brains:phpStorm。他们还有 WebStorm。
* 帮助从 IDE 调试
* 跳转到函数
* 搜索文件或类
* 代码检查,这样你就可以在运行代码之前知道是否存在拼写错误
* sass、less、git、...
* 大量插件
我仍然找不到更好的 IDE,唯一类似的 IDE 是 NetBeans 和 Eclipse,但它们太臃肿,速度太慢,不符合我的喜好...所以我只是付费使用 phpStorm。
希望这能对你们有所帮助。我知道寻找一款好的 IDE 非常耗时。祝好!
ST 的开发似乎已经减弱了。
现在都是 Brackets 了。我讨厌 Adobe,但我非常喜欢这款编辑器。强烈推荐。或者 Vim。永远 Vim。
这是一个学习 Sublime Text 的好资源。
http://code.tutsplus.com/articles/perfect-workflow-in-sublime-text-free-course–net-27293
不错的网站
我使用的是 Coda 2,但 Sublime 似乎更直观。但是 Coda 内置了 ftp,可以让你在保存文件时上传文件。
有没有适用于 OSX 的独立 FTP 工具可以为我提供相同的功能?在 Sublime 中保存文件时上传文件?
祝你编码愉快!
试试 Transmit。也来自 Panic,和 Coda 一样。
它是 Mac 上最好的 FTP 客户端。
对于 SCSS 高亮显示,我一直使用这个包,而不是你提到的 SCSS 包。作者做了很多工作来更彻底地支持最新的语法,覆盖率也更好。同一个作者还有一个与 Javascript Next 相似的 javascript 高亮显示包 https://github.com/P233/Syntax-highlighting-for-Sass
很棒的文章!还有很多可以谈论的话题!Sublime 仍然是最好的轻量级编辑器。我一直使用 Cobalt 主题,直到我发现了 Wesbos 的 Cobalt2,我很喜欢它。
非常棒的文章,非常感谢!
我现在迷上了 SpaceGray 主题。它非常简洁,看着很舒服。
@Evan Jacobs - 我也在使用这个主题。简洁漂亮。
我使用的是 Enmet LiveStyle Sublime 插件 + LiveStyle Chrome 插件。
它正在彻底改变前端开发!
1) CSS 更改会立即反映在网站上(即使不保存文档)
2) 在浏览器开发工具中进行的更改会立即返回到你的 CSS 文件中!
现在,我无法想象没有它如何进行前端开发)
它现在处于测试阶段,免费提供。将来它将成为付费插件。我肯定会购买它。
不幸的是,它目前并不稳定 - 有时它会随机停止工作
强烈推荐它。:)
Nned,看看我的评论 https://css-tricks.cn/sublime-text-front-end-developers/#comment-1586932。Colt 可以用不同的浏览器 + 更多方法做到这一点。这对 Sublime 来说是革命性的。我不知道为什么开发者会忽视它。
Codelobster 对我来说效果更好。
关于 emmet 的好文章,有些事情我之前并不知道。
我个人使用 ITG 主题,因为它让我的眼睛感到放松。一些值得一提的插件 - 常用文件,如果你正在使用 Bootstrap/Foundation 框架,有一些代码片段,你可以用几下点击创建组件。
真是太棒了!
我从尝试 Sublime Text 开始,到现在它成了我唯一使用的代码编辑器。我之前用过一些其他的编辑器(Coda、NP++、vim、eMacs),但对我个人来说,没有一个能比得上 Sublime Text。
我喜欢做的一些定制是将我的字体设置为 Consolas,大约 11pt,并在用户设置中添加行填充和边距。
你好,
感谢你的描述,你知道 Sublime 如何支持波斯语和 Unicode UTF-8 吗?