http://bbs.it-home.org/thread-46291-1-1.html

摘要(Abstract)

更新记录

    • 更正打开控制台的快捷键为Ctrl + `
    • 更正全局替换的快捷键为Ctrl + Alt + Enter

前言(Prologue)

编辑器的选择(Editor Choices)

  • 跨平台:Vim和Sublime Text均为跨平台编辑器(在Linux、OS X和Windows下均可使用)。作为一个程序员,切换系统是常有的事情,为了减少重复学习,使用一个跨平台的编辑器是很有必要的。
  • 可扩展:Vim和Sublime Text都是可扩展的(Extensible),并包含大量实用插件,我们可以通过安装自己领域的插件来成倍提高工作效率。
  • 互补:Vim和Sublime Text分别是命令行环境(CLI)和图形界面环境(GUI)下的最佳选择,同时使用两者会大大提高工作效率。

我是一名非常典型的程序员:平时工作主要在Linux环境下使用Java和Python,偶尔会用HTML+CSS+JavaScript编写网页;业余时会在Windows环境编写一些C#程序(包括控制台程序(Console Application)和移动应用(Mobile App),也会玩一些非主流语言(比如Haskell,ML和Ruby等)以拓展见识。

本文风格(Writing Style)

受益于K&R C的写作风格,我倾向于以实际案例来讲解Sublime Text的功能,所以本文中的例子均源于我在实际开发时遇到的问题。

编辑器(Editor) vs 集成开发环境(Integrated Development Environment,下文简称IDE)

  • 编辑器面向无语义的纯文本,不涉及领域逻辑,因此速度快体积小,适合编写单独的配置文件和动态语言脚本(Shell、Python和Ruby等)。
  • IDE面向有语义的代码,会涉及到大量领域逻辑,因此速度偏慢体积庞大,适合编写静态语言项目(Java、C++和C#等)。

前言到此结束,下面进入正题。

安装(Installation)

注意在安装时勾选Add to explorer context menu,这样在右键单击文件时就可以直接使用Sublime Text打开。

添加Sublime Text到环境变量

Win + R运行sysdm.cpl打开“系统属性”。

然后在“高级”选项卡里选择“环境变量”,编辑“Path”,增加Sublime Text的安装目录(例如D:\Program Files\Sublime Text 3)。

接下来你就可以在命令行里面利用subl命令直接使用Sublime Text了:

1
2
3
[/code]
subl file    :: 使用Sublime Text打开file文件
subl folder :: 使用Sublime Text打开folder文件夹
subl . :: 使用Sublime Text当前文件夹
[/code]

前文提到Sublime Text支持大量插件,如何找到并管理这些插件就成了一个问题,Package Control正是为了解决这个问题而出现的,利用它我们可以很方便的浏览、安装和卸载Sublime Text中的插件。

  • 使用Ctrl + `打开Sublime Text控制台。
  • 将下面的代码粘贴到控制台里:
1
[/code]
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 else open(os.path.join( ipp, pf), 'wb' ).write(by)[/code]
      等待Package Control安装完成。之后使用

Ctrl + Shift + P

      打开命令板,输入

PC

    应出现Package Control:

成功安装Package Control之后,我们就可以方便的安装使用Sublime Text的各种插件:

购买(Purchase)

Sublime Text是一个收费闭源软件,这在一定程度上成为了我支持Sublime Text的理由(我心中的软件靠谱程度:免费开源 << 免费闭源 < 收费开源 < 收费闭源):在这里购买。

(UNREGISTERED)。(在高频操作下,一般20分钟提示一次,个人认为算是很厚道了)

也许不少人会觉着Sublime Text 70刀的价格太贵,但相比它的功能和带来的效率提升,70刀真的不值一提,如果你不方便使用Paypal付款可以邮件联系我,你支付宝给我打款然后我帮你付款,价格按当日汇率折算(450元左右)。

概览(Tour)

Sublime Text的界面如下:

  • 标签(Tab):无需介绍。
  • 编辑区(Editing Area):无需介绍。
  • 侧栏(Side Bar):包含当前打开的文件以及文件夹视图。
  • 缩略图(Minimap):如其名。
  • 命令板(Command Palette):Sublime Text的操作中心,它使得我们基本可以脱离鼠标和菜单栏进行操作。
  • 控制台(Console):使用Ctrl + `调出,它既是一个标准的Python REPL,也可以直接对Sublime Text进行配置。
  • 状态栏(Status Bar):显示当前行号、当前语言和Tab格式等信息。

与其他GUI环境下的编辑器不同,Sublime Text并没有一个专门的配置界面,与之相反,Sublime Text使用JSON配置文件,例如:

1
2
3
4
[/code]
{
"font_size": 12,
"highlight_line": true,
}
[/code]

JSON配置文件的引入简化了Sublime Text的界面,但也使得配置变的复杂,一般我会到这里查看可用的Sublime Text配置。

编辑(Editing)

基本编辑(Basic Editing)

↑↓←→就是↑↓←→,不是KJHL,(没错我就是在吐槽Vim,尼玛设成WSAD也比这个强啊),粘贴剪切复制均和系统一致。

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可以把当前选中区域合并为一行:

查找&替换(Finding&Replacing)

快速查找、标准查找和多文件查找三种类型。

快速查找&替换

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

标准查找&替换

Ctrl + F调出搜索框进行搜索:

以及使用Ctrl + H进行替换:

关键字查找&替换

Enter跳至关键字当前光标的下一个位置,Shift + Enter跳至上一个位置,Alt + Enter选中其出现的所有位置(同样的,接下来可以进行快速替换)。

Alt + C切换大小写敏感(Case-sensitive)模式,Alt + W切换整字匹配(Whole matching)模式,除此之外Sublime Text还支持在选中范围内搜索(Search in selection),这个功能没有对应的快捷键,但可以通过以下配置项自动开启。

1
[/code]
"auto_find_in_selection": true[/code]

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

正则表达式查找&替换

Alt + R切换正则匹配模式的开启/关闭。Sublime Text的使用Boost里的Perl正则表达式风格。

多文件搜索&替换

Ctrl + Shift + F开启多文件搜索&替换(注意此快捷键和搜狗输入法的简繁切换快捷键有冲突):

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

Sublime Text提供了强大的跳转功能使得我们可以在不同的文件/方法/函数中无缝切换。就我的使用经验而言,目前还没有哪一款编辑器可以在这个方面超越Sublime Text。

Ctrl + P会列出当前打开的文件(或者是当前文件夹的文件),输入文件名然后Enter跳转至该文件。

EIS、EclipStupid都可以匹配EclipseIsStupid.java

跳转到符号

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)

File下Open Folder

你会发现右边多了一个侧栏,这个侧栏列出了当前打开的文件和文件夹的文件,使用Ctrl + K, Ctrl + B显示或隐藏侧栏,使用Ctrl + P快速跳转到文件夹里的文件。

窗口&标签(Windows & Tabs)

窗口(Window)

Ctrl + Shift + N创建一个新窗口(该快捷键再次和搜狗输入法快捷键冲突,个人建议禁用所有搜狗输入法快捷键)。

Ctrl + W关闭该窗口。

使用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屏。

Sublime Text有两种全屏模式:普通全屏和无干扰全屏。

F11切换普通全屏:

Shift + F11切换无干扰全屏:

风格(Styles)

Notepad++默认界面

Sublime Text默认界面

所以在用过Sublime Text之后,我立刻就卸掉了Notepad++。

Monokai Bright,这两者的搭配已经很不错了,不过我们还可以做得更好:接下来我将会展示如何通过设置偏好项和添加自定义风格/主题使得Sublime Text更加Stylish。

下面是我个人使用的设置项。

1
2
3
4
5
6
7
8
9
[/code]
// 设置Sans-serif(无衬线)等宽字体,以便阅读
"font_face": "YaHei Consolas Hybrid",
"font_size": 12,
// 使光标闪动更加柔和
"caret_style": "phase",
// 高亮当前行
"highlight_line": true,
// 高亮有修改的标签
"highlight_modified_tabs": true,
[/code]

Sublime Text有大量第三方主题:[https://sublime.wbond.net/browse/labels/theme],这里我给出几个个人感觉不错的主题:

colorsublime包含了大量Sublime Text配色方案,并支持在线预览,配色方案的安装教程在这里,恕不赘述。

1
2
[/code]
"theme": "Nexus.sublime-theme",
"color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme",
[/code]

编码(Coding)

良好实践(Good Practices)

1
2
3
4
5
6
7
8
9
10
11
12
[/code]
// 设置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]

Sublime Text支持代码段(Code Snippet),输入代码段名称后Tab即可生成代码段。

你可以通过Package Control安装第三方代码段,也可以自己创建代码段,参考这里。

Sublime Text基本的手动格式化操作包括:Ctrl + [向左缩进,Ctrl + ]向右缩进,此外Ctrl + Shift + V可以以当前缩进粘贴代码(非常实用)。

  • HTMLBeautify:格式化HTML。
  • AutoPEP8:格式化Python代码。
  • Alignment:进行智能对齐。

Sublime Text 支持一定的自动完成,按Tab自动补全。

括号(Brackets)

Ctrl + M可以快速的在起始括号和结尾括号间切换,Ctrl + Shift + M则可以快速选择括号间的内容,对于缩进型语言(例如Python)则可以使用Ctrl + Shift + J

此外,我使用BracketHighlighter插件以高亮显示配对括号以及当前光标所在区域,效果如下:

命令行(Command Line)

其它(Miscellaneous)

下面是一些可能有用但我很少用到的功能:

    宏(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)

通用(General)

↑↓←→

      :上下左右移动光标,注意不是不是

KJHL

  • Alt:调出菜单
  • Ctrl + Shift + P:调出命令板(Command Palette)
  • Ctrl + `:调出控制台
  • Ctrl + Enter:在当前行下面新增一行然后跳至该行
  • Ctrl + Shift + Enter:在当前行上面增加一行并跳至该行
  • Ctrl + ←/→:进行逐词移动
  • Ctrl + Shift + ←/→进行逐词选择
  • Ctrl + ↑/↓移动当前显示区域
  • Ctrl + Shift + ↑/↓移动当前行
  • 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:多文件搜索&替换
  • Ctrl + P:跳转到指定文件,输入文件名后可以:

    • @ 符号跳转:输入@symbol跳转到symbol符号所在的位置
    • # 关键字跳转:输入#keyword跳转到keyword所在的位置
    • : 行号跳转:输入:12跳转到文件的第12行。
  • Ctrl + R:跳转到指定符号
  • Ctrl + G:跳转到指定行号
  • Ctrl + Shift + N:创建一个新窗口
  • Ctrl + N:在当前窗口创建一个新标签
  • Ctrl + W:关闭当前标签,当窗口内没有标签时会关闭该窗口
  • Ctrl + Shift + T:恢复刚刚关闭的标签
  • F11:切换普通全屏
  • Shift + F11:切换无干扰全屏
  • Alt + Shift + 2:进行左右分屏
  • Alt + Shift + 8:进行上下分屏
  • Alt + Shift + 5:进行上下左右分屏
  • 分屏之后,使用Ctrl + 数字键跳转到指定屏,使用Ctrl + Shift + 数字键将当前屏移动到指定屏

延伸阅读(Further Reading)

  • Mastering Sublime Text:我读过的唯一一本关于Sublime Text的书籍,书中介绍的插件很实用,但对编辑技巧介绍不全。
  • Instant Sublime Text Starter:另外一本关于Sublime Text的书,我没有读过。
  • 官方文档: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插件和主题。
  • Getting Started with SublimeText:https://www.youtube.com/watch?v=04gKiTiRlq8
  • Sublime Text Pefect Workflow:https://www.youtube.com/watch?v=bpEp0ePIOEM&list=PLuwqxbvf3olpLsnFvo06gbrkcEB5o7K0g

[工具] Sublime Text 使用指南的更多相关文章

  1. 最全面的 Sublime Text 使用指南

    最全面的 Sublime Text 使用指南   摘要(Abstract) 本文系统全面的介绍了Sublime Text,旨在成为最优秀的Sublime Text中文教程. 前言(Prologue) ...

  2. Sublime Text 全程指南

    摘要(Abstract) 本文系统全面的介绍了 Sublime Text,旨在成为最优秀的 Sublime Text 中文教程. 更新记录 2014/09/27:完成初稿 2014/09/28: 更正 ...

  3. sublime text全程指南【转载】

    前言(Prologue) Sublime Text是一款跨平台代码编辑器(Code Editor),从最初的Sublime Text 1.0,到现在的Sublime Text 3.0,Sublime ...

  4. 前端必备工具-Sublime Text 2

    一个好的编辑器,能够大大地提高工作效率,editplus.notepad++都是不错的工具,体积小,启动速度快,想比之下Dreamweaver就太臃肿了,今天初使用Sublime Text 这个软件, ...

  5. Sublime Text 全程指南(转载)

    摘要(Abstract) 本文系统全面的介绍了Sublime Text,旨在成为最优秀的Sublime Text中文教程. 更新记录 2014/09/27:完成初稿 2014/09/28: 更正打开控 ...

  6. sublime__最全面的 Sublime Text 使用指南

    感谢大佬--> 原文链接 摘要(Abstract) 本文系统全面的介绍了Sublime Text,旨在成为最优秀的Sublime Text中文教程. 前言(Prologue) Sublime T ...

  7. Sublime Text 使用指南 - 前端开发神器

    Sublime Text 前端开发的神器 Sublime Text是一个前端开发者必备的编辑器,大量的插件,完善的功能,优越的性能,有非常多的特色,给前端开发提供了一个完善的开发条件. 本文主要介绍的 ...

  8. quick-cocos2d-x开发工具sublime text及其强力插件QuickXDev

    更新:如今QuickXDev已经能够通过Package Control下载了,全部QuickXDev相关的请看这里:http://my.oschina.net/lonewolf/blog?catalo ...

  9. quick-cocos2d-x 游戏开发之一】开发工具sublime text及其强力插件QuickXDev

    http://blog.csdn.net/yihaiyiren/article/details/17220927

随机推荐

  1. 【WP8】ScrollViewer滑动到底触发器(ListBox失效)

    很多时候会有到底加载更多的需求,而ScrollViewer不支持继承,无法继承它进行扩展,只能通过触发器来控制到底的事件(当然,可以通过UserControl去扩展) 思路:定义一个Trigger,自 ...

  2. 简要介绍DES、RSA MD5 sha1 四种加密算法的优缺点,以及使用场合

    美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立.密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合.RSA是非对称算法,加密密钥和解密密钥是不 ...

  3. java的final关键字——修饰变量

    final修饰的变量不可变,指的是引用不可变,(除基本类型)而不是内容. final修饰的成员变量必须被初始化

  4. IE8 AJAX 不能正常工作 解决办法

    function crossDomainAjax(url, successCallback) { // IE8 & 9 only Cross domain JSON GET request i ...

  5. Linux的时间设置与同步

    http://www.cnblogs.com/liuyou/archive/2012/07/29/2614338.html

  6. 【动态规划】数字分组I

    [动态规划]数字分组I 时间限制: 1 Sec  内存限制: 64 MB提交: 10  解决: 6[提交][状态][讨论版] 题目描述 给出一堆魔法石的重量,问如何分成两堆,使得它们质量和之差最小,求 ...

  7. Unity 协程使用指南

    0x00 前言 在使用Unity的过程中,对协程仅仅知道怎样使用,但并不知道协程的内部机理,对于自己不清楚的部分就像一块大石压力心里.让自己感觉到担忧和不适. 这篇文章一探到底,彻底揭开协程的面纱,让 ...

  8. Dubbo -- 系统学习 笔记 -- 示例 -- 泛化引用

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 泛化引用 泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值 ...

  9. chm只看到目录,看不到内容解决办法

    鼠标左键->属性->解除锁定->搞定!

  10. java.security.NoSuchAlgorithmException: SHA1PRNG SecureRandom not available

    好久没有使用MyEclipse10了,今天打开看了以前大学的项目,在Tomcat7中发布启动,我嚓嘞,报错: SEVERE: Exception initializing random number ...