美文网首页Tools
Mac 环境下将Sublime Text 3 作为Ruby on

Mac 环境下将Sublime Text 3 作为Ruby on

作者: 王振华1990 | 来源:发表于2019-05-02 23:25 被阅读102次

    背景介绍

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

    做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] 单列、双列、三列


    参考

    相关文章

      网友评论

        本文标题:Mac 环境下将Sublime Text 3 作为Ruby on

        本文链接:https://www.haomeiwen.com/subject/iwwonqtx.html