[{"data":1,"prerenderedAt":820},["ShallowReactive",2],{"navigation":3,"post-\u002Fposts\u002F2013\u002Fsublime-text-2-supergood-code-editor":20,"surroundPosts-\u002Fposts\u002F2013\u002Fsublime-text-2-supergood-code-editor":807},[4,8,12,16],{"title":5,"path":6,"stem":7},"首页","\u002F","00.index",{"title":9,"path":10,"stem":11},"文章","\u002Fposts","01.posts",{"title":13,"path":14,"stem":15},"动态","\u002Fmoments","02.moments",{"title":17,"path":18,"stem":19},"关于","\u002Fabout","09.about",{"id":21,"title":22,"body":23,"class":786,"cover":786,"coverSize":786,"date":787,"description":788,"draft":789,"extension":790,"hideComments":789,"location":786,"meta":791,"navigation":792,"path":793,"readingTime":794,"seo":799,"sitemap":800,"stem":801,"tags":802,"time":805,"weather":786,"__hash__":806},"posts\u002Fposts\u002F2013\u002F20130217.sublime-text-2-supergood-code-editor.md","Sublime Text 2 超级强大的代码编辑器，如获至宝！",{"type":24,"value":25,"toc":784},"minimark",[26,37,40,43,49,52,57,62,65,69,73,77,82,85,89,97,100,103,108,111,114,136,140,145,153,157,160,165,168,172,175,178,183,186,190,195,198,213,216,219,494,498,507,511,514,518,521,525,533,538,541,545,548,553,560,569,573,576,583,586,593,596,600,607,610,617,620,624,631,634,641,644,648,655,658,665,668,675,678,681,688,691,698,701,708,711,714,721,724,727,734,737,744,747,750,757,760,763,766,769,774,780],[27,28,29,30,36],"p",{},"好久没有写代码了，今天稍微温习了下 PHP，依旧是选择 CodeIgniter 的框架，今天看了一个 CodeIgniter 的教学视频：20 分钟创建一个小型博客 ",[31,32,33],"a",{"href":33,"rel":34},"http:\u002F\u002Fcodeigniter.org.cn\u002Ftutorials\u002Fwatch\u002Fblog",[35],"nofollow","，作者是 Derek Jones，虽然不知道他是谁，不过讲得还是不错的。但是，看了这个视频，我最大的收获是，竟然还有如此完美的代码编辑器，听了几遍都没有听出作者介绍的这个 IDE 叫什么，后来多方搜索，终于找到了这个 IDE 的名字 TextMate，很完美，但是只适用于 Mac 平台的，并没有 Windows 版的。",[27,38,39],{},"不过，所幸的是，我查到了另外一个 IDE，也就是今天的主角：Sublime Text 2，感觉比 TextMate 还要强大，而且是跨平台的。其界面之优美、功能之庞大让我爱不释手，更重要的是，它的速度特别快，就像 Notepad++一样，这也是我不喜欢 Eclipse 的原因，太臃肿。",[27,41,42],{},"下面我要引用一些网上的内容来介绍一下 Sublime Text 2：",[27,44,45],{},[46,47,48],"strong",{},"语法高亮、代码提示补全、代码折叠、自定义皮肤\u002F配色方案、多便签页：",[27,50,51],{},"SublimeText2 支持但不限于 C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile and XML 等主流编程语言的语法高亮。ST2 拥有优秀的代码自动完成功能（自动补齐括号，大括号等配对符号；自动补全已经出现的单词；自动补全函数名），非常智能；另外 ST2 也拥有代码片段（Snippet）的功能，可以将常用的代码片段保存起来，在需要时随时调用。当然，语法高亮、代码折叠、行号显示、自定义皮肤、配色方案等这些已经是一款现代编辑器应有的标配功能了，所以这里就不多做介绍了。",[53,54],"post-image",{"filename":55,"description":56},"01.png","实用方便的代码提示补全功能",[27,58,59],{},[46,60,61],{},"代码地图、多种界面布局与全屏免打扰模式：",[27,63,64],{},"Sublime Text 2 在界面上比较有特色的是支持多种布局和代码地图，也提供了 F11 和 Shift+F11 进入全屏免打扰模式，如下面几幅图：",[53,66],{"filename":67,"description":68},"02.png","代码地图与多标签页",[53,70],{"filename":71,"description":72},"03.png","多种布局设置，在大屏幕或需同时编辑多文件时尤为方便",[53,74],{"filename":75,"description":76},"04.png","全屏免打扰模式，更加专心于编辑",[27,78,79],{},[46,80,81],{},"完全开放的用户自定义配置与神奇实用的编辑状态恢复功能：",[27,83,84],{},"Sublime Text 2 的各种配置均由配置文件控制，完完全全的可以由用户自定义，如果你愿意折腾，甚至可以将它改得于原版完全不一样的操作体验。看下面的图，Setting – Default 菜单会打开默认的软件配置文件（这个文件会记录一些诸如使用什么字体等很多很多配置信息），Key Bindings – Default 是默认的快捷键配置文件，大家可以打开它们看看原本的一些设置是怎样配置的，但非常不建议直接在这里修改！你可以在 – User 结尾的文件（也就是用户自定义配置的意思）里面照样画葫芦那样来改，如果两边有相同的项目，它会以 – User 文件里面定义的为准。",[53,86],{"filename":87,"description":88},"05.png","Key Bindings",[27,90,91,92,96],{},"这个例子里我在 Key Bindings – User 里面的第一行：",[93,94,95],"code",{},"{ \"keys\": [\"alt+up\"], \"command\": \"swap_line_up\" }",", 意思就是按 Alt+方向键上时将当前选择的那一行向上移（与上一行交换位置），如果语法神马的没问题，保存好这个文件之后马上就可以使用这个快捷键了。",[27,98,99],{},"Sublime Text 2 的快捷键还支持双重组合，譬如默认情况下，将选中的文字改成大写的热键是“Ctrl+K, Ctrl+U”，意思是当你先按下 Ctrl+K 之后迅速再按 Ctrl+U 进行触发（只按下 Ctrl+K 是没有作用的），这样可以避免很多热键冲突，也可以更灵活更多选择地进行热键自定义。不过在这里就不打算教大家怎样修改各种配置或修改热键了，这恐怕能出一个手册的，这里有一个套比较完整的官方文档(鸟语)，有兴趣的朋友可以去参考一下。",[27,101,102],{},"另外，SublimeText  还有一个值得一提的细节——”编辑状态恢复”，就是当你修改了一个文件，但没有保存，这时退出软件，ST2 是不会很烦人地提示你要不要保存的，因为无论是用户自发退出还是意外崩溃退出，下次启动软件后，你之前的编辑状态都会被完整恢复，就像你退出前一样。这个细节我认为非常非常的赞！因为我经常会尝试性地去修改一些地方，但在确保没有问题之前又不想保存，这时如果有些事情打断自己，需要离开时，这个特性就很有用了，直接退出就行，不用烦，下次回来打开软件继续编辑即可。当然，有了这个恢复特性再也不怕系统崩溃、断电了吧，真心让人觉得 ST2 特别特别的安全可靠，妥妥的啊！",[27,104,105],{},[46,106,107],{},"强大的多行选择和多行编辑：",[27,109,110],{},"在写代码的过程中，我们经常需要同时编辑多行代码或者多个变量。在 Sublime Text 2 中拥有非常实用的多行操作技巧，灵活运用可以大大提高编辑速度哟！相信日后你可能会这样问自己：“当年没有这种方式的编辑器时我究竟是怎么活过来的？！”",[27,112,113],{},"下面是一些我所了解的多行编辑方法：",[115,116,117,121,124,127,130,133],"ul",{},[118,119,120],"li",{},"鼠标选中多行，按下 Ctrl+Shift+L (Command+Shift+L) 即可同时编辑这些行；",[118,122,123],{},"鼠标选中文本，反复按 CTRL+D (Command+D) 即可继续向下同时选中下一个相同的文本进行同时编辑；",[118,125,126],{},"鼠标选中文本，按下 Alt+F3 (Win) 或 Ctrl+Command+G(Mac) 即可一次性选择全部的相同文本进行同时编辑；",[118,128,129],{},"Shift+鼠标右键 (Win) 或 Option+鼠标左键 (Mac) 或使用鼠标中键可以用鼠标进行竖向多行选择；",[118,131,132],{},"Ctrl+鼠标左键(Win) 或 Command+鼠标左键(Mac) 可以手动选择同时要编辑的多处文本",[118,134,135],{},"类似的技巧还有很多，求大家补充……",[53,137],{"filename":138,"description":139},"06.png","Shift+鼠标右键轻松实现多行编辑，批量给变量加前缀了",[27,141,142],{},[46,143,144],{},"雷电般快速的文件切换：",[27,146,147,148],{},"如果你同时打开了多个文件，或者你的项目里经常需要编辑不同的文件，在文件数量较多的时候，在过去往往需要花费很多的精力去寻找，很是烦人。而现在，Sublime Text 2 里只需按下 Ctrl+P(Win) 或 Shift+Command+P(Mac) 即可调出文件切换面板，接着你只需输入文件名，回车后即可瞬间切换过去！并且它支持模糊匹配，只需输入你记得的一部分即可，譬如我想要找一个“",[31,149,152],{"href":150,"rel":151},"http:\u002F\u002Fwww.iplaysoft.com.php%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6%E6%9D%A5%E7%BC%96%E8%BE%91%EF%BC%8C%E9%82%A3%E4%B9%88%E4%BD%A0%E5%8F%AA%E9%9C%80%E8%A6%81%E8%BE%93%E5%85%A5%E2%80%9Cipl%E2%80%9D%E6%88%96%E8%80%85%E6%98%AF%E2%80%9Dips.c%E2%80%9D%E8%BF%99%E6%A0%B7%E7%9A%84%E5%AD%97%E7%AC%A6%E9%83%BD%E8%83%BD%E5%8C%B9%E9%85%8D%E5%87%BA%E6%9D%A5%EF%BC%8C%E8%BF%99%E4%B8%AA%E7%89%B9%E6%80%A7%E9%9D%9E%E5%B8%B8%E9%9D%9E%E5%B8%B8%E7%9A%84%E6%A3%92%EF%BC%81",[35],"www.iplaysoft.com.php”的文件来编辑，那么你只需要输入“ipl”或者是”ips.c”这样的字符都能匹配出来，这个特性非常非常的棒！",[53,154],{"filename":155,"description":156},"07.png","图中 ca 匹配了 capabilities.php 和 classese.php，选择就能快速切换",[27,158,159],{},"类似的功能，我只在类似 Eclipse 等大型(笨重)的 IDE 中才见到过，然而小巧快速的编辑器中，我还是首次遇到。使用这个功能，你除了可以在已打开的文件中切换之外，如果你使用项目管理（将一个文件夹设置成一个项目），它还能懂得去搜索匹配项目文件夹下未被打开过的文件。现在你还需要用鼠标去一个一个点标签页来切换吗？你还要打开“我的电脑”慢慢在各个不同文件夹去找需要编辑的文件吗？使用 ST2，你只需输入几个字符即可～只有一句话：前所未有的方便！",[27,161,162],{},[46,163,164],{},"随心所欲的跳转：快速罗列与定位函数\u002FHTML 的元素、跳转到指定行：",[27,166,167],{},"使用上面介绍的快速文件切换功能，可以很轻易地打开\u002F切换到自己想要编辑的文档了，但如果这个文件的代码很长很长，想要轻松跳到要编辑的地方又有什么好方法呢？ Sublime Text 2 早就帮你想好了，同样是按下前面所说的 Ctrl+P(Win) 或 Shift+Command+P(Mac)，这次试试先输入一个 @ 号看看？嗯，好样的！这列表马上帮你罗列出这文件里全部的 Function 了！同样使用模糊匹配，快速输入几个关键字，马上就能定位到那个 Function 去了！！！在需要不停在多个 Function 之间跳转的时候这个功能尤显实用～妈妈再也不用担心我找函数找到蛋疼了！当你编辑的是 HTML 时，这货给你罗列的则是 HTML 的各个 ID 元素，相信搞前端的同学们都鸡冻了吧。",[53,169],{"filename":170,"description":171},"08.png","Ctrl+P之后输入@号或者 直接按Ctrl+R，即可列出该文件里的全部function",[27,173,174],{},"输入@号开始有此般神奇功效，那么再试试输入一个英文冒号 : 开始吧，然后再输入一个数字，嗯，这次则可以跳到指定的行数了；输入一个#号开始，可以罗列\u002F搜索文本；而且你还可以使用更快速的快捷键，譬如快速列出\u002F跳转函数就是 Ctrl+R (Mac 下是 Command+R)，它完全等同于 Ctrl+P 之后输入@；跳转到指定行号是 Ctrl+G (Mac 是 Command+G)。",[27,176,177],{},"而且更让人叫绝的是，这些切换定位方法你还可以配合在一起使用！譬如我有一个名为”hello-iplaysoft.js”的文件，里面其中有一个 function 叫做”visit_iplaysoft_com”，我现在想要编辑这个函数，那么我只需按下 Ctrl+P，然后输入“heip@vi”回车（模糊匹配，注意前面有颜色的字符），ST2 马上就给我到打开这个文件并定位进去了！够方便了吧？！熟记这几个快捷键，你可以很一气呵成地进行文件切换和编辑，你会发现世界更美好哦亲……",[27,179,180],{},[46,181,182],{},"集所有功能于一身的命令面板：",[27,184,185],{},"Sublime Text 2 的一大特色是拥有一个相当强大的命令面板，它几乎无所不能！任何时候，按下 Ctrl+Shift+P(Win) 或 Command+Shift+P(Mac) 即可调出。利用它，你可以实现很多很多很多很多很多功能，例如“Set Syntax:PHP”即可将当前文档设置成 PHP 语法高亮；“Convert Case: Swap Case”可以将选中的文本大小写反转；“File: Save All”可以一次保存全部文件；“File: Close All”一次关闭全部文件等等……而且，这里的列表一样支持模糊匹配（这货真心是个好东西啊！）。因为这里面命令实在太多了，覆盖的作用范围也很广，我这里实在不能一一介绍，大家如果有兴趣，可以经常调个面板出来看看列表中都有些什么命令，多多去了解、尝试、再慢慢消化，相信它会让你再也离不开它。",[53,187],{"filename":188,"description":189},"09.png","强大的命令面板，可以在这里调用一切SublimeText提供的功能",[27,191,192],{},[46,193,194],{},"Package Control（绝不可错过的扩展包管理器）：",[27,196,197],{},"Sublime Text 2 除了自身拥有无数实用功能和特性之外，它还能安装使用各种扩展\u002F皮肤\u002F配色方案等来增强自己。现在介绍的这个 Package Control 可以看做是一个 ST2 的扩展管理器，使用它，你可以用非常神奇、非常简单方便的方法去下载、安装、删除 Sublime Text 2 的各种插件、皮肤等，相信我，想更好地使用 ST2 绝对不能没有它！不过 ST2 本身并没有自带这个工具，我们需要自行安装它，方法很简单：",[199,200,201,204,207,210],"ol",{},[118,202,203],{},"在 SublimeText2 的目录里面找到 Data > Installed Packages 的文件夹 (如没有请手动新建)",[118,205,206],{},"在这里下载 Package Control.sublime-package 文件",[118,208,209],{},"将下载到的文件放进去 Installed Packages 里面",[118,211,212],{},"重新启动 Sublime Text 即可",[27,214,215],{},"如果 Package Control 已经安装成功，那么 Ctrl+Shift+P 调用命令面板，我们就会找到一些以“Package Control:”开头的命令，我们常用到的就是几个 Install Package (安装扩展)、List Packages (列出全部扩展)、Remove Package (移除扩展)、Upgrade Package (升级扩展)。",[27,217,218],{},"但如果你按照上面的方法确实搞不定，可以试试按键盘 Ctrl+~ （数字 1 左边的按键）调出控制台，然后拷贝下面的代码进去并回车，它会自动帮你新建文件夹并下载文件的，与上面的方法最终效果是一样的：",[220,221,226],"pre",{"className":222,"code":223,"language":224,"meta":225,"style":225},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import urllib2,os;\npf='Package Control.sublime-package';\nipp=sublime.installed_packages_path();\nos.makedirs(ipp) if not os.path.exists(ipp) else None;\nurllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));\nopen(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http:\u002F\u002Fsublime.wbond.net\u002F'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'\n","python","",[93,227,228,248,272,295,349,383],{"__ignoreMap":225},[229,230,233,237,241,245],"span",{"class":231,"line":232},"line",1,[229,234,236],{"class":235},"sVHd0","import",[229,238,240],{"class":239},"su5hD"," urllib2",[229,242,244],{"class":243},"sP7_E",",",[229,246,247],{"class":239},"os;\n",[229,249,251,254,258,262,266,268],{"class":231,"line":250},2,[229,252,253],{"class":239},"pf",[229,255,257],{"class":256},"smGrS","=",[229,259,261],{"class":260},"sjJ54","'",[229,263,265],{"class":264},"s_sjI","Package Control.sublime-package",[229,267,261],{"class":260},[229,269,271],{"class":270},"srjyR",";\n",[229,273,275,278,280,283,286,290,293],{"class":231,"line":274},3,[229,276,277],{"class":239},"ipp",[229,279,257],{"class":256},[229,281,282],{"class":239},"sublime",[229,284,285],{"class":243},".",[229,287,289],{"class":288},"slqww","installed_packages_path",[229,291,292],{"class":243},"()",[229,294,271],{"class":270},[229,296,298,301,303,306,309,311,314,317,320,323,325,329,331,334,336,338,340,343,347],{"class":231,"line":297},4,[229,299,300],{"class":239},"os",[229,302,285],{"class":243},[229,304,305],{"class":288},"makedirs",[229,307,308],{"class":243},"(",[229,310,277],{"class":288},[229,312,313],{"class":243},")",[229,315,316],{"class":235}," if",[229,318,319],{"class":256}," not",[229,321,322],{"class":239}," os",[229,324,285],{"class":243},[229,326,328],{"class":327},"skxfh","path",[229,330,285],{"class":243},[229,332,333],{"class":288},"exists",[229,335,308],{"class":243},[229,337,277],{"class":288},[229,339,313],{"class":243},[229,341,342],{"class":235}," else",[229,344,346],{"class":345},"s39Yj"," None",[229,348,271],{"class":270},[229,350,352,355,357,360,362,364,366,369,371,373,375,378,381],{"class":231,"line":351},5,[229,353,354],{"class":239},"urllib2",[229,356,285],{"class":243},[229,358,359],{"class":288},"install_opener",[229,361,308],{"class":243},[229,363,354],{"class":288},[229,365,285],{"class":243},[229,367,368],{"class":288},"build_opener",[229,370,308],{"class":243},[229,372,354],{"class":288},[229,374,285],{"class":243},[229,376,377],{"class":288},"ProxyHandler",[229,379,380],{"class":243},"()))",[229,382,271],{"class":270},[229,384,386,390,392,394,396,398,400,403,405,407,409,411,414,416,419,421,424,427,429,431,433,436,438,440,443,445,448,450,452,455,457,459,462,464,466,469,471,474,477,480,483,486,488,491],{"class":231,"line":385},6,[229,387,389],{"class":388},"sptTA","open",[229,391,308],{"class":243},[229,393,300],{"class":288},[229,395,285],{"class":243},[229,397,328],{"class":327},[229,399,285],{"class":243},[229,401,402],{"class":288},"join",[229,404,308],{"class":243},[229,406,277],{"class":288},[229,408,244],{"class":243},[229,410,253],{"class":288},[229,412,413],{"class":243},"),",[229,415,261],{"class":260},[229,417,418],{"class":264},"wb",[229,420,261],{"class":260},[229,422,423],{"class":243},").",[229,425,426],{"class":288},"write",[229,428,308],{"class":243},[229,430,354],{"class":288},[229,432,285],{"class":243},[229,434,435],{"class":288},"urlopen",[229,437,308],{"class":243},[229,439,261],{"class":260},[229,441,442],{"class":264},"http:\u002F\u002Fsublime.wbond.net\u002F",[229,444,261],{"class":260},[229,446,447],{"class":256},"+",[229,449,253],{"class":288},[229,451,285],{"class":243},[229,453,454],{"class":288},"replace",[229,456,308],{"class":243},[229,458,261],{"class":260},[229,460,461],{"class":260}," '",[229,463,244],{"class":243},[229,465,261],{"class":260},[229,467,468],{"class":264},"%20",[229,470,261],{"class":260},[229,472,473],{"class":243},")).",[229,475,476],{"class":288},"read",[229,478,479],{"class":243},"())",[229,481,482],{"class":239},"; ",[229,484,485],{"class":388},"print",[229,487,461],{"class":260},[229,489,490],{"class":264},"Please restart Sublime Text to finish installation",[229,492,493],{"class":260},"'\n",[53,495],{"filename":496,"description":497},"10.png","成功安装 Package Control 之后，在命令面板里会出现以其命名开头的一系列命令",[27,499,500,501,506],{},"在命令面板输入 “Package Control: Install Package“即会列出全部可以安装的扩展（必需连接网络，如下图），从列表可以看到，4GL、AAAPackageDev 那些就是插件的名称，选择它们就可以进行下载安装了。从该列表可以看到，目前 ST2 的各种扩展已经非常丰富了！此外，你还可以在",[31,502,505],{"href":503,"rel":504},"http:\u002F\u002Fwbond.net\u002Fsublime_packages\u002Fcommunity",[35],"这里","看到 Web 版的扩展列表和详细的说明 （这俩列表的数据应该是同步的。在截稿为止 2012-7-8，这里已经收集了 482 个扩展包了）",[53,508],{"filename":509,"description":510},"11.png","plugins",[27,512,513],{},"我这里以安装“JsFormat”插件为例，简单介绍一下 SublimeText 里面怎样安装与使用插件吧。JsFormat 的功能就是可以将一些凌乱的 JavaScript 代码重新排版，以方便更好地阅读与编辑。使用 Ctrl+Shift+P 调用命令面板，输入“Package Control: Install Package”(安装扩展包)，在插件列表中选择安装“JsFormat”(可以输入字符过滤)，待提示成功之后即已完成安装。随便打开一个 js 文件（最好是换行、对齐特别凌乱的那种），按下 Ctrl+Shift+P 调用命令面板，你会发现已经多了一项命令叫做“Format: Javascript”，如图：",[53,515],{"filename":516,"description":517},"12.png","使用 JSFormat 插件的 Format: Javascript 命令",[27,519,520],{},"使用之后，你的代码瞬间就变整齐了有木有！你也可以使用这个插件的热键“CTRL+ALT+F”进行整理（命令面板右方可以看到）。",[53,522],{"filename":523,"description":524},"13.png","使用 JSFormat 之后的 JS 代码效果，注意上图的JS代码是一堆的",[27,526,527,528,532],{},"当然，不同的扩展，使用的方法与表现的形式都不一样，这个就只能去 web 版查一下这个插件的一些具体的使用说明了，这里是不能一概而论的。不过大体上，安装和使用插件就是这么的简单。通过各种插件，你几乎可以实现任何你想要的功能。而且 ST2 也开放了插件 API，如果你有能力，也可以试试开发一个，可以参考",[31,529,505],{"href":530,"rel":531},"http:\u002F\u002Fwww.sublimetext.com\u002Fdocs\u002F2\u002Fapi_reference.html",[35],"的 API 文档。本文后面会推荐一些实用的插件。",[27,534,535],{},[46,536,537],{},"更换主题或配色方案：",[27,539,540],{},"如果你看腻了 SublimeText 的原版皮肤，也可以折腾一下换肤的。譬如下图是一款比较流行的主题 Theme – Soda，和安装插件基本上一样，使用 Package Control 进入 Install Package 的列表里面找到它进行安装即可。你也可以在网上找到一些 ST2 的主题，下载回来放到安装目录的 Data\\Packages 文件夹里面，然后选择切换主题。配色方案的操作也是类似，大家自己研究研究吧，这里不多做介绍了。",[53,542],{"filename":543,"description":544},"14.png","theme-soda-light",[27,546,547],{},"另外，SublimeText 还有很给力的一点，就是它能原生支持 TextMate 的 Bundle 和配色方案，同样也是放在 Packages 文件夹里即可使用。TextMate 的 Bundle 和配色方案资源都比较丰富，网上可以找到不少。",[27,549,550],{},[46,551,552],{},"下面来介绍几款有用的 Sublime Text 2 的插件：",[27,554,555],{},[31,556,559],{"href":557,"rel":558},"https:\u002F\u002Fbitbucket.org\u002Fsublimator\u002Fsublime-2-zencoding",[35],"Zen Coding",[27,561,562,563,568],{},"这个，不解释了，还不知道 ZenCoding 的同学强烈推荐去看一下：《",[31,564,567],{"href":565,"rel":566},"http:\u002F\u002Fwww.qianduan.net\u002Fzen-coding-a-new-way-to-write-html-code.html",[35],"Zen Coding: 一种快速编写 HTML\u002FCSS 代码的方法","》。",[53,570],{"filename":571,"description":572},"15.png","zen",[27,574,575],{},"PS:Zen Coding  for Sublime  Text 2 插件的开发者已经停止了在 Github 上共享了，现在只有通过 Package Control 来安装。",[27,577,578],{},[31,579,582],{"href":580,"rel":581},"https:\u002F\u002Fgithub.com\u002Fmrmartineau\u002FJquery",[35],"jQuery Package for sublime Text",[27,584,585],{},"如果你离不开 jQuery 的话，这个必备～～",[27,587,588],{},[31,589,592],{"href":590,"rel":591},"https:\u002F\u002Fgithub.com\u002Fwbond\u002Fsublime_prefixr",[35],"Sublime Prefixr",[27,594,595],{},"Prefixr，CSS3 私有前缀自动补全插件，显然也很有用哇",[53,597],{"filename":598,"description":599},"16.png","Prefixr",[27,601,602],{},[31,603,606],{"href":604,"rel":605},"https:\u002F\u002Fgithub.com\u002Fjdc0589\u002FJsFormat",[35],"JS Format",[27,608,609],{},"一个 JS 代码格式化插件。",[27,611,612],{},[31,613,616],{"href":614,"rel":615},"https:\u002F\u002Fgithub.com\u002Fkronuz\u002FSublimeLinter\u002F",[35],"SublimeLinter",[27,618,619],{},"一个支持 lint 语法的插件，可以高亮 linter 认为有错误的代码行，也支持高亮一些特别的注释，比如“TODO”，这样就可以被快速定位。（IntelliJ IDEA 的 TODO 功能很赞，这个插件虽然比不上，但是也够用了吧）",[53,621],{"filename":622,"description":623},"17.png","Linter",[27,625,626],{},[31,627,630],{"href":628,"rel":629},"https:\u002F\u002Fgithub.com\u002Fmrmartineau\u002FPlaceholders",[35],"Placeholders",[27,632,633],{},"故名思意，占位用，包括一些占位文字和 HTML 代码片段，实用。",[27,635,636],{},[31,637,640],{"href":638,"rel":639},"https:\u002F\u002Fgithub.com\u002Fwbond\u002Fsublime_alignment",[35],"Sublime Alignment",[27,642,643],{},"用于代码格式的自动对齐。传说最新版 Sublime 已经集成。",[53,645],{"filename":646,"description":647},"18.png","Alignment",[27,649,650],{},[31,651,654],{"href":652,"rel":653},"https:\u002F\u002Fgithub.com\u002Fkemayo\u002Fsublime-text-2-clipboard-history",[35],"Clipboard History",[27,656,657],{},"粘贴板历史记录，方便使用复制\u002F剪切的内容。",[27,659,660],{},[31,661,664],{"href":662,"rel":663},"https:\u002F\u002Fgithub.com\u002Fphillipkoebbe\u002FDetectSyntax",[35],"DetectSyntax",[27,666,667],{},"这是一个代码检测插件。",[27,669,670],{},[31,671,674],{"href":672,"rel":673},"https:\u002F\u002Fgithub.com\u002Fweslly\u002FNettuts-Fetch",[35],"Nettuts Fetch",[27,676,677],{},"如果你在用一些公用的或者开源的框架，比如 Normalize.css 或者 modernizr.js，但是，过了一段时间后，可能该开源库已经更新了，而你没有发现，这个时候可能已经不太适合你的项目了，那么你就要重新折腾一遍或者继续用陈旧的文件。Nettuts Fetch 可以让你设置一些需要同步的文件列表，然后保存更新。",[53,679],{"filename":680},"19.jpg",[27,682,683],{},[31,684,687],{"href":685,"rel":686},"https:\u002F\u002Fgithub.com\u002Fcgutierrez\u002FJsMinifier",[35],"JsMinifier",[27,689,690],{},"该插件基于 Google Closure compiler，自动压缩 js 文件。",[27,692,693],{},[31,694,697],{"href":695,"rel":696},"https:\u002F\u002Fgithub.com\u002FKronuz\u002FSublimeCodeIntel",[35],"Sublime CodeIntel",[27,699,700],{},"代码自动提示",[27,702,703],{},[31,704,707],{"href":705,"rel":706},"https:\u002F\u002Fgithub.com\u002Ffacelessuser\u002FBracketHighlighter",[35],"Bracket Highlighter",[27,709,710],{},"类似于代码匹配，可以匹配括号，引号等符号内的范围。",[53,712],{"filename":713},"20.png",[27,715,716],{},[31,717,720],{"href":718,"rel":719},"https:\u002F\u002Fgithub.com\u002Fatadams\u002FHex-to-HSL-Color",[35],"Hex to HSL",[27,722,723],{},"自动转换颜色值，从 16 进制到 HSL 格式，快捷键 Ctrl+Shift+U",[53,725],{"filename":726},"21.png",[27,728,729],{},[31,730,733],{"href":731,"rel":732},"http:\u002F\u002Fwww.sublimetext.com\u002Fforum\u002Fviewtopic.php?f=5&p=22274",[35],"GBK to UTF8",[27,735,736],{},"将文件编码从 GBK 转黄成 UTF8，快捷键 Ctrl+Shift+C",[27,738,739],{},[31,740,743],{"href":741,"rel":742},"https:\u002F\u002Fgithub.com\u002Fkemayo\u002Fsublime-text-2-git",[35],"Git",[53,745],{"filename":746},"22.png",[27,748,749],{},"该插件基本上实现了 git 的所有功能。",[27,751,752],{},[31,753,756],{"href":754,"rel":755},"http:\u002F\u002Fwbond.net\u002Fsublime_packages\u002Fsftp",[35],"SFTP",[27,758,759],{},"超级强大的 FTP 插件。安装方法：",[27,761,762],{},"按下 Ctrl+Shift+P 调出命令面板，输入 install 调出 Install Package 选项并回车，然后输入 ftp，下拉列表中会出现一些相关的插件，选中 sftp 进行安装就行了，装好后还需进行配置，选择菜单栏中的 File->SFTP\u002FFTP->Set up Server，然后会出现一个配置窗口，将相关内容修改成你的配置，最后保存成任意文件名即可，下面给出我的一个 ftp 配置文件：",[53,764],{"filename":765},"23.png",[27,767,768],{},"另外，在左侧栏本地项目上右击，有个 SFTP\u002FFTP，选择 Add Remote Mapping，然后会生成一个 sftp-config.json 的文件，之后你就可以通过项目的 SFTP\u002FFTP 菜单里的 Sync Local -> Remote 来进行文件的同步了，很是方便！",[27,770,771],{},[46,772,773],{},"附上一段 Sublime Text 2 的介绍视频（作者：大城小胖）：",[27,775,776],{},[31,777,778],{"href":778,"rel":779},"http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzU5NzQ5ODgw.html",[35],[781,782,783],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":225,"searchDepth":250,"depth":250,"links":785},[],null,"2013-02-17","好久没有写代码了，今天稍微温习了下 PHP，依旧是选择 CodeIgniter 的框架，今天看了一个 CodeIgniter 的教学视频：20 分钟创建一个小型博客 http:\u002F\u002Fcodeigniter.org.cn\u002Ftutorials\u002Fwatch\u002Fblog，作者是 Derek Jones，虽然不知道他是谁，不过讲得还是不错的。但是，看了这个视频，我最大的收获是，竟然还有如此完美的代码编辑器，听了几遍都没有听出作者介绍的这个 IDE 叫什么，后来多方搜索，终于找到了这个 IDE 的名字 TextMate，很完美，但是只适用于 Mac 平台的，并没有 Windows 版的。",false,"md",{},true,"\u002Fposts\u002F2013\u002Fsublime-text-2-supergood-code-editor",{"text":795,"minutes":796,"time":797,"words":798},"23 min read",22.805,1368300,4561,{"title":22,"description":788},{"loc":793},"posts\u002F2013\u002F20130217.sublime-text-2-supergood-code-editor",[803,804],"工具","转载","凌晨","wPJozhFrPf8JnG9YTJsRn0LiuJtXuU3PzoNcgW0ZtE4",[808,814],{"title":809,"path":810,"stem":811,"date":812,"description":813,"children":-1},"明早回学校，结束寒假生活","\u002Fposts\u002F2013\u002Ftomorrow-go-back-to-school-to-finish-my-winter-life","posts\u002F2013\u002F20130220.tomorrow-go-back-to-school-to-finish-my-winter-life","2013-02-20","今天把 Blog 的主题重新换了一个，使用了星际 2 那个站点的主题，另外和网上几个不错的刚起步的博客站点交换了友链，开始 SEO 优化之路。",{"title":815,"path":816,"stem":817,"date":818,"description":819,"children":-1},"卸载 Orbit 之后 Chrome 下载仍指向 Orbit 的解决方法","\u002Fposts\u002F2013\u002Funinstall-orbit-plugin-for-chrome","posts\u002F2013\u002F20130216.uninstall-orbit-plugin-for-chrome","2013-02-16","之前使用过 Orbit，外国的一款 P2P 下载软件，比较优秀精简，大可替代迅雷。我之前用它是使用他的 Grab++功能，可以捕捉 own3D 上的视频，这个让我用得很爽。说起迅雷，我总是很不爽，迅雷的界面实在是太土了，一味追求绚丽的效果，界面总是卡死，这一点上，Orbit 实在是好多了，简洁的界面，从不会卡死。然而，迅雷在国内的下载速度确实是应该比 Orbit 好一点，具体我也没有去测试，可以确定的是 Orbit 是不会在后台默默上传的，所以相对来说，可能下载速度会稍微差一点点。所以后来我也就不用了，卸载了。",1777580288739]