Mac 环境下将Sublime Text 3 作为Ruby on Rails 编辑器的安装及配置

背景介绍

我并没有什么背景,有的只是背影。。。

做Rails开发已经两年多了,一直在用 Atom 编辑器 ,觉得也挺好用。来到新公司,大部分同事用的都是 Sublime,为了和大家更好地协作,我也就"抱着试试看的态度,试用了一个疗程"的 Sublime 。

使用体验

用了两周的时间,"感觉腰也不酸了,腿也不疼了",代码质量都有所提高。

  • 快,特别快,贼快:几乎没有任何卡顿,尤其是跳转到函数的定义处时,从Atom过来的我甚至觉得有点太快了。

  • 修改配置的方式更适合程序员:之前我一直决定Atom的一大好处是安装插件时是可视化界面,操作更简单。但现在觉得全部用JSON来修改配置反而更清晰。

  • 对Markdown的支持不如 Atom 好,也有可能是我没找到更好的插件吧。需要装多个插件,使用起来也比较麻烦。

下面我就把我安装、配置 Sublime 过程中遇到的坑、趟过的雷分享一下。

安装Sublime Text 3(ST3)

找到 Sublime 的官网,点击右上角的 Download ,选择你的环境对应的版本下载即可。如果想安装 Sublime Text 2 可以去这里 Sublime Text 2

安装 Package Control

Package Control 是 Sublime的插件管理工具,安装了它,就可以很方便地安装各种插件了。

你Google一下,很多文章都推荐输入以下命令来按照 Package Control :import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

但我反复尝试后还是报错,最终也没搞清楚什么原因:可能是我的电脑上的Python安装的有问题吧;但也可能是Package Control 的网站无法访问导致的。

最终我选择了离线安装的方式:Package Control 离线包的下载地址, 点击 Clone or download 后,点击 Download ZIP

  • 把下载好的zip包解压,重命名为 Package Control注意:两个单词的首字母都要大写)。

  • 打开 ST3,Preferences — Browse Packages,把 Package Control文件夹复制到该目录下。

  • 重启 ST3,如果 Preferences有Package Settings 和 Package Control 这两项,就说明 Package Control 安装成功了。

但重启后会有以下提示:It appears you have Package Control installed as both a .sublime-package file and a directory inside of the Packages folder. 解决方法是:Preferences — Browse Packages,此时会进入 Package Control 目录,点击 Finder 左上角的几种文件查看方式中的第三个,找到 Sublime Text 3 下的Installed Packages文件夹,删除Installed Packages下的文件 Package Control.sublime-package 即可。

安装插件的方法

我们已经安装了 Package Control,正常情况下,Command + Shift + P,在出现的框中输入install,选中Package Control: Install Package 就会进入安装插件模式。在搜索框中输入你要安装的插件的名字,选中后回车就会安装。安装插件的过程中,Sublime左下角会有个 = 左右摇晃。

但我选择 Install Package 之后,不出现搜索框,且报错:

Package Control  
There are no packages available for installation  
Please see https://packagecontrol.io/docs/troubleshooting for help</pre>

报错原因是ST3读取插件列表的接口地址发生了变化,而天朝访问不了这个地址。

解决方法是下载https://raw.githubusercontent.com/SuCicada/channel_v3.json/master/channel_v3.json这个文件放到本地电脑某个路径下,在 Preferences—Package Setting—Package Control —Setting User 中添加下列配置,写明这个文件在你电脑中的路径:

"channels":
[
"/Users/huazai/Documents/channel_v3.json"
],</pre>

此时,就可以安装各种插件了。问题来了,该安装哪些插件呢?

我已安装的插件

  • All Autocomplete ST3本身也有自动补全功能,但这个插件能大大加强这一功能。

  • SideBarEnhancements 增强侧边栏的功能

  • Origami 增强分屏功能。 Origami

  • markdown功能:安装 Markdown Editing 插件后,新建一个Markdown文件,点击右下角的文件格式提示,可以在弹出的菜单的Markdown Editing中选择使用哪种Markdown语法,一般用MultiMarkdown即可。再安装Markdown Preview 插件,然后进行如下操作 command+shift+p — preview in browser — markdown / github,即可在浏览器中预览Markdown 文件。

  • rubocop 和 SublimeLinter 安装后,编辑器就会按照 ruby-style-guide 的标准检查你的代码,对不符合标准的代码给出提示。这一功能来自于 rubocop , 首先执行 gem install rubocop 来安装这个gem。然后在ST3 中安装三个插件来实现rubocop在后台的自动运行: SublimeLinterSublimeLinter-RubySublimeLinter-rubocop

    SublimeLinter自动检查代码的默认时间为0.1s,这太快了,你刚敲进去半句代码,它就会提示错误。自定义设置rubocop的响应时间的方法是,去ST3—Preferences—Package Settings—SublimeLinter—Settings,在打开的SublimeLinter.sublime-settings 文件中,添加如下设置,就会将其响应时间设为1s :

{
     "delay": 1,
}
  • CTags CTags 会为全部代码建立索引,增强类、函数等的跳转功能。

    首先在ST3中安装 CTags 插件,然后在终端执行 brew install ctags

    如果只想建立你的项目中所定义的函数的索引,只需在终端中进入你的项目目录,执行ctags -R -f .tags,就会创建一个.tags文件,将这个项目中需要建立的索引都写进去。

    因为Rails项目中要用到大量的gem,如果想同时建立所有用到的gem的索引,可以在你的 $PATH目录下创建一个名为ctags_for_ruby 的脚本文件,并执行 chmod +x ctags_for_ruby 命令将其设置为可执行文件。在在文件中写入以下内容:

#!/usr/bin/env ruby
    system "find . -name '*.rb' | ctags -f .tags -L -"
    ​
    if File.exist? './Gemfile'
      require 'bundler'
      paths = Bundler.load.specs.map(&:full_gem_path).join(' ')
      system "ctags -R -f .gemtags #{paths}"
    end

执行ctags_for_ruby 命令以执行以上脚本,既会为项目中的函数建立一个.tags 索引文件,又会单独在源码根目录下为所有gem建立一个 .gemtags 索引文件。

这时把光标移动到项目中的函数名上,右键Goto Definition即可跳转到函数定义处,右键Jump Back即可跳回。

我们肯定不希望 .tags 和 .gemtags 文件的内容出现在全文搜索的结果中,设置的方法是,进入 ST3—Preferences— Settings ,在Preferences.sublime-settings——User文件中加入以下设置: "file_exclude_patterns": [".tags", ".tags_sorted_by_file", ".gemtags"]

配置文件

ST3—Preferences—Settings 即可打开配置文件。ST3 的配置文件有两个,一个是 Default,一个是 User。二者都以 JSON 格式记录配置信息,其中前者记录着 Sublime Text 的默认配置,禁止用户修改;后者默认为空,允许用户修改。User 配置文件的内容会覆盖 Default 的相应内容,所以只要修改 User 配置文件就好了。

比如我现在的User配置如下:

{
 "auto_complete": true,  #打开自动补全功能,这可以提供基本的自动补全
 "copy_with_empty_selection": true,
 "ensure_newline_at_eof_on_save": false, # 保存文件时自动在最后补一行空白行
 "file_exclude_patterns":
 [
 ".tags",
 "tags",
 ".tags_sorted_by_file",
 ".gemtags"
 ],
 "font_size": 18,
 "ignored_packages":
 [
 "Markdown",
 "Vintage"
 ],
 "index_files": true,   #提供基础的索引功能
 "origami_auto_close_empty_panes": true,
 "rulers":
 [
 79
 ],
 "show_minimap": false,  #默认隐藏右侧的地图
 "tab_size": 2,
 "translate_tabs_to_spaces": true,
 "trim_trailing_white_space_on_save": false  #自动去掉你无意间留下的空格
}

用命令行打开ST3

执行ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl,即可在终端执行 subl projet_name来用ST3打开项目代码。

将sublime设置为git的默认编辑器

执行git config --global core.editor "subl -n -w" 即可。执行这个命令后,可以打开~/.gitconfig文件看到你的设置。

常用的快捷键

打开、关闭,前往

command + N 新建文件

command + P 跳转、前往文件、前往项目、命令提示、前往方法(goto anything) command + T 前往文件 command + R 前往方法 control + G 前往行

control + ` 开关控制台

command + W 关闭当前文件的快捷键

command + K + B 开关左侧栏

在文件中右键,选择reveal in side bar 或 command + shift + \ 在左侧栏打开当前文件所在的路径

编辑

command + L 选择行(重复按下将下一行加入选择) command + D 选择词(重复按下时多重选择相同的词进行多重编辑)

command + shift + V 粘贴并自动缩进

command + shift + S 保存所有文件

查找、替换

command + option + F 查找并替换

command + control + g 查找所有符合当前选择的内容进行多重编辑

拆分窗口、标签页

command + option + [1,2,3] 单列、双列、三列


参考

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容