Sublime Text 2 入门及技巧
看了 Nettuts+ 对 Sublime Text 2 的介绍, 立刻就兴奋了,诚如作者 Jeffrey Way 所说:“《永远的毁灭公爵》都发布了,TextMate 2 还没发”,你还能指望它么?TextMate 开发者的消极态度已经无法让人忍受了。而作为一款跨 OS X、Linux 和 Windows 三大系统平台的文字编辑器,Sublime Text 2 功能日进,大有取 TextMate 而代之的势头,
以下就将 Nettuts+ 的这篇文章做一粗略翻译,固然不是面面俱到,用做入门却是足够了。以下均是以 Mac 版本为主,但对 Windows 和 Linux 版来说也是相通的。
换个耐看点些的图标
更新:更多可用替换图标
Sublime Text 2 目前还处于测试阶段,默认的黑方块图标看起来实在不够养眼,Nate Beaty 制作了一个不错的替代品。
Mac 下的替换方法:
- 在
应用程序
目录中找到 Sublime Text 2,按住 Ctrl 并点击之,在弹出的菜单中选择“显示包内容”。 - 进入
Contents/Resources/
目录,用新下载的图标替换Sublime Text 2.icns
。
尝试开发版本
Sublime Text 2 目前更新十分活跃,如果想要尝试最新的功能,建议下载并安装 dev 版本。
快捷的命令面板
和 TextMate 类似,Sublime Text 2 也提供了很方便的命令调用方式:Command Palette(命令面板)。调用方法:直接在 Tool
菜单中选择 Command Palette
,或是用快捷键:Shift + Command + P
,输入命令名称(中的字母)就可以实时搜索到相应的命令、选项、snippet 和 syntex, 按下回车就可以直接执行,减少了查找的麻烦。
即时的文件切换
按下 Command + P
(Mac) 或是 Ctrl + P
(Windows),输入想要切换到的文件的文件名,都不用按下回车键,目标文件就已经展现在眼前了,虽然 Vim 配合 PeepOpen 也可以实现同样的功能,但速度却远没有这么迅速。
随心所欲的跳转
Cmd+P
之所以被叫做 Goto Anything 并不是虚名:
- 用
Command+P
可以快速跳转到当前项目中的任意文件,可进行关键词匹配。 - 用
Command+P
后@
(或是Command+R
)可以快速列出/跳转到某个函数(很爽的是在 markdown 当中是匹配到标题,而且还是带缩进的!)。 - 用
Command+P
后#
可以在当前文件中进行搜索。 - 用
Command+P
后:
(或是Ctrl+G
)加上数字可以跳转到相应的行。 - 而更酷的是你可以用
Command+P
加上一些关键词跳转到某个文件同时加上@
来列出/跳转到目标文件中的某个函数,或是同时加上#
来在目标文件中进行搜索,或是同时加上:
和数字来跳转到目标文件中相应的行。
多重选择(Multi-Selection)
多重选择功能允许在页面中同时存在多个光标,让很多本来需要正则表达式、高级搜索和替换才能完成的任务也变得游刃有余了。看看 Nettut+ 提供的实例可能更为直观一些:
激活多重选择的方法有两几种:
- 按住
Command
或Alt
,然后在页面中希望中现光标的位置点击。 - 选择数行文本,然后按下
Shift + Command + L
。 - 通过反复按下
Control/Command + D
即可将全文中与光标当前所在位置的词相同的词逐一加入选择,而直接按下Alt+F3
(Windows) 或是Ctrl+Command+G
(Mac) 即可一次性选择所有相同的词。 - 按下鼠标中键来进行垂直方向的纵列选择,也可以进入多重编辑状态。
缩进指示(Indent Guide)
更新:缩进指示已经被集成进 Sublime Text 2 中,不需要安装插件了。
缩进指示这个小功能可以让代码的层级关系更加清晰,在 Sublime Text 2 中,可以通过一个插件来实现这个功能。
安装方法:
- 下载 IndentGuides 插件。
- 解压后,将文件夹重命名为
Indent Guides
,并放入Packages
目录中。找到Packages
目录的简单方法是在 Sublime Text 2 的Preferences
菜单中选择Browse Packages
。 - 重启 Sublime Text 2
安装包控制(Package Control)
上一条中的安装插件的方法是不是很麻烦呢?其实和 TextMate 可安装 Bundle、Plugin 一样,Sublime Text 2 也拥有良好的扩展功能,这就是安装包(Package);同样,就像 TextMate 有用来安装、升级、卸载 Bundle 的 GetBundles 一样,Sublime Text 2 也有其用来进行 Package 控制的插件:Sublime Package Control。通过 Sublime Package Control,安装、升级和卸载 Package 也变得轻松写意了。
安装 Package Control 的方法:
更新(2013-08-17):更新了针对 Sublime Text 2 和 Sublime Text 3 的安装代码。
- 打开 Sublime Text 2,按下
Control + `
调出 Console 将以下代码粘贴进命令行中并回车:
import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
重启 Sublime Text 2,如果在
Preferences -> Package Settings
中见到Package Control
这一项,就说明安装成功了。
使用 Package Control 安装 Package 的方法将在后面用到的地方详述。
对齐
对于某些喜欢整齐的码农来说,看到下面这种情况可能是让其无法忍受的:
var joe = 'joe';
var johnny = 'johnny';
var quaid = 'quaid';
一定要改成这样才会安心:
var joe = 'joe';
var johnny = 'johnny';
var quaid = 'quaid';
TextMate 里也有这样的功能(
Option + Command + ]
)可以自动实现以上的对齐过程,而在 Sublime Text 2 之中,一个 Sublime Alignment 插件也可以轻松实现。以下就通过 Package Control 来安装这个插件:
按下
Shift + Command + P
调出命令面板。输入
install
调出Package Control: Install Package
选项,按下回车。在列表中找到
Alignment
,按下回车进行安装。重启 Sublime Text 2 使之生效。现在通过选中文本并按下 Shift + Command + A
Ctrl + Command + A
就可以进行对齐操作了。
通过这个方法就可以简便的安装更多的插件,虽然目前的安装源中插件并不是很多,但相信以后会更加丰富的。
Vim 模式
是的,Sublime Text 2 dev 版已经支持 Vim 的编辑模式了,如果更喜欢 Vim 的编辑模式,可以通过以下方法来激活 Vintage mode:
按下
Shift + Command + P
调出命令面板。输入
settings user
调出Preferences:Settings - User
,并按下回车。以上两步也可以直接用
cmd + ,
完成。这时会打开一个 Preferences.sublime-settings 的文件,如果是第一次修改,它应该是个空文件,把以下文本粘贴进去:
{
"ignored_packages": []
}
保存这个文件,这时按下 ESC 键,再按下一些你熟悉的 Vim 命令,是不是很有亲切感?
无干扰模式(Distraction Free Mode)
现在的编辑器如果没有一个无干扰模式似乎都说不过去了,在 Sublime Text 2 中,只要按下
Control + Shift + Command + F
或是在菜单View
中选择Enter Distraction Free Mode
就可以进入这个 UI 最小化模式了。如果是在用 Mac OS X Lion 的话,Sublime Text 2 还同时支持 Lion 的原生全屏模式。通过修改 “Preferences” -> “File Settings - More” -> “Distraction Free - User” 可以对防干扰模式进行一些设置:
{
"line_numbers": false, //是否显示行号
"gutter": false, //是否显示边列
"draw_centered": true, //是否居中显示
"wrap_width": 80, //换行宽度(单位:字符)
"word_wrap": true, //是否自动换行
"scroll_past_end": true //滚动能否超过结尾
}
TextMate Bundle
Sublime Text 2 很给力的一点就是它同时支持一些 TextMate 的 Bundle。
Sublime Text 2 对于 TextMate Bundle 中的 Snippet 有着良好的原生支持,把 Bundle 放到 Packages 目录里就能用。但对 Bundle 中的 command 并不支持,此外,TextMate 的色彩主题 [1] 也是可以放到 Packages 目录里直接用的。估计随着 Sublime Text 2 越来越火,会有更多 TextMate 的 Bundle 被移植过来。
主题
这里所讲的主题不同于针对代码的 Color Scheme,是指针对 Sublime 程序本身的主题,目前可以安装的是 Ian Hill 的 Soda。
因为源中已经添加,所以这款主题的安装同样可以通过 Package Control,非常方便。目前 Soda 主题提供了明暗两种风格。
激活方法,同样要修改 Preferences:Settings - User:
按下
Shift + Command + P
调出命令面板。输入
user settings
调出Preferences:Settings - User
,并按下回车。theme
添加以下代码激活 Soda Light 主题:
{
"theme": "Soda Light.sublime-theme"
}
添加以下代码激活 Soda Dark 主题:
{
"theme": "Soda Dark.sublime-theme"
}
保存生效。
命令行工具
和 TextMate 和 MacVim 一样,Sublime Text 2 也提供了很方便的命令行工具以方便通过终端来快速的调用 Sublime Text 2 程序来打开文件/目录/项目等。
要使用命令行工具,你需要创建一个符号链接,在终端(Terminal.app)中运行:
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
然后运行
subl --help
可以查看subl
命令的使用方法:123456789101112131415161718使用: subl [参数] [文件] 编辑指定文件或: subl [参数] [目录] 打开指定目录或: subl [参数] - 编辑 stdin可用参数:--project <项目>: 读取指定项目--command <命令>: 运行指定命令-n 或 --new-window: 打开新窗口-a 或 --add: 向当前窗口中添加文件夹-w 或 --wait: 等待文件关闭后再返回-b 或 --background: 不激活程序窗口-s 或 --stay: 关闭文件后保持程序窗口激活-h 或 --help: 显示此帮助-v 或 --version: 显示版本号读取 stdin 时会使用 --wait 参数。通过 --stay 可以在文件关闭后不返回终端(仅针对单个文件)。可以通过向文件名添加 `:行号` 或 `:行号:列号` 后缀来打开到更具体的位置。总结
在试用 Sublime Text 2 的过程中,“快”和“顺”是给 Lucifr 最强烈的感受,就如同 Chrome 浏览器一样,Sublime 的各种操作都给人以很流畅的感受。良好的中文支持也是 TextMate 所不具备的,虽然以目前的插件数量和质量还不能完全替代 TextMate,但还是让人十分期待的。唯一让人纠结的是价格,$59 的注册价确实不便宜(明显是照着 TextMate 的 $58 加一块定的嘛),好在目前测试阶段还可以无限试用。
更多 Sublime Text 2 相关文章,请关注这里。
Sublime Text 2 入门及技巧的更多相关文章
- Sublime Text 2入门指南
Sublime Text 2入门指南 一天在iteye上看到范凯介绍一个开发工具(TextMate ),看下面的评论时看到Sublime Text 2.其实我一直喜欢editplus.百度了一番才 ...
- Sublime Text 2 入门与总结
Sublime Text 2 入门与总结 首语 : 考完试,但又没什么兴趣做课程设计,蛋疼的弄点软件入门的介绍,希望给各位还在吃香蕉的程序猿带来一点启示... 代码编辑器,就像武侠中的武 ...
- sublime text 3 入门技巧与常见问题解决
1. 常见问题 - 解决sublime 窗口栏(UNREGISTERED)(未购买)导致的经常性弹窗 解决方法: 点击Help -> About Sublime Text,查看sublimete ...
- Sublime Text 有哪些使用技巧
1. 更改变量名的几种方法<img src="https://pic4.zhimg.com/d93cf0e8987e0117f3a3187cfe8e53fb_b.jpg&quo ...
- 关于Sublime Text编辑器的实用技巧
本文转载至一篇博文,为您提供Sublime Text编辑器的12个技巧和诀窍,深入挖掘这个看似简洁的代码编辑器,背后所隐藏的实现各种高级功能的无限可能. 1) 选择 以下是一些Sublime Text ...
- sublime text 3 快捷键&&使用技巧
参考文章:https://github.com/jikeytang/sublime-text 这里有很多技巧http://www.jianshu.com/p/3cb5c6f2421c/ 置顶: Ctr ...
- Sublime Text 快捷键及使用技巧的学习整理
下载和安装(很简单,省略)下载地址 http://www.sublimetext.com/2 1. 有两点需要注意 a) Sublime Text目前稳定的版本是Sublime Text 2,Subl ...
- Sublime Text 2 入门
SublimeText 2 的介绍视频: http://player.youku.com/player.php/partnerid/XOTcy/sid/XMzU5NzQ5ODgw/v.swf 以下 ...
- Sublime Text 3 入门(插件控制台安装)
下载地址:http://www.sublimetext.com/3 以windows 32位系统为例 直接点击Windows下载: Package Control插件控制台(有这个才可以安装插件) h ...
随机推荐
- 调研Android Studio开发环境的发展演变(附安装教程,多图)
Android Studio(以下简称AS)第一次公开亮相是在2013年的谷歌I/O大会上,14年的大会上谷歌发布其试用测试版,如今AS已经历数次版本更新,功能十分强大.如(摘自百度百科Android ...
- Java泛型中E、T、K、V等的含义
Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Numbe ...
- 小菜鸟学 MQ(一)
第一步: 从http://activemq.apache.org/ 下载相关文件. apache-activemq-5.8.0-bin.zip 解压到指定目录下. 第二步: cmd 下切换到 mq ...
- BZOJ-3669 魔法森林 Link-Cut-Tree
意识到背模版的重要性了,记住了原理和操作,然后手打模版残了..颓我时间...... 3669: [Noi2014]魔法森林 Time Limit: 30 Sec Memory Limit: 512 M ...
- BZOJ-3227 红黑树(tree) 树形DP
个人认为比较好的(高端)树形DP,也有可能是人傻 3227: [Sdoi2008]红黑树(tree) Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1 ...
- TCP/IP详解 学习三
网际协议 ip Ip 是不可靠和无连接的 ip首部 4个字节的 32 bit值以下面的次序传输:首先是 0-7 bit,其次 8-15 bit,然后 1 6-23 bit,最后是 24~31 bit. ...
- Put-Me-Down项目Postmortem
设想和目标 PMD是一款帮助低头族控制使用手机时间的APP,设想按照需求规格说明书内容实现功能,能将数据备份到服务器. 计划 初始计划我们是想将程序方面分为安卓和后台,主要是程序方面的工作.我们对项目 ...
- 网络html查看器
1)演示效果:
- linux磁盘空间清理
由于当初安装系统设计不合理,有些分区的过小,以及网络通讯故障等造成日志文件速度增长等其他原因都可以表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等.下面就给你支几招(以/home空间满为例): ...
- char*和char []
1.char *s1 = "ssss"; 2.char s2[] = "bbbb"; 对于第一种,我是无法理解,无法想象字符串赋值给一个char类型的指针,查了 ...