说明:本教程适用于已经配置好基本的Ruby和Rails开发环境,并且想要进阶提高编辑效率的小伙伴。
本文可能会不断更新。
1.安装
安全很简单,打开iTerm。依次运行以下指令:
$ cd ~ #进入根目录$ brew install vim
ps: 这个过程可能会比较长,大概需要二十分钟,如果网速慢的话,一定要耐心等程序全部跑完。
2.配置
只是最基础的Vim并不能大幅度提高ruby开发的效率。需要进行一些基本的配置,以下的配置参考了李亚飞的教程link,再此基础上增加了snipmate和delimitmate插件。并修改了一些快捷键。
Step1 :
打开iTerm,依次输入并执行以下指令(建议拷贝):
$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim$ git clone https://github.com/Hukui-Reborn/ruby-vimrc-hk.git$ cp ruby-vimrc-hk/vimrc ~/.vimrc $ mkdir ~/.vim/colors $ cp ruby-vimrc-hk/colors/molokai.vim ~/.vim/colors $ vim
现在vim应该已经打开了,在vim界面下输入以下指令:
:PluginInstall
等待安装完成,出现done!
字样。然后运行:q!
,请注意在Vim中运行这两条命令都前面都是有:
的。
3.使用
以下的教程大量参考了李亚飞在Ruby China的教程:https://ruby-china.org/topics/19315 同时一定要按照刚刚的配置教程成功配置后,下面的教程中的快捷键才能发挥作用。
基础使用
如果对基础还不熟悉的的话,可以参考下面这篇教程,同时建议你稍微熟悉下Vim基本操作之后,再来看下面的教程。
http://hukui-blog.logdown.com/posts/2017/03/27/vim-installed-a-simple-tutorial
高效第一招:急速跳转
1、标准的Rails目录,也就是常见的controller、model、view、helper等目录的快捷跳转利用的是 Rails.vim这个插件。
先看下面这个GIF,说明一下:先打开了group的controller,然后跳转到了group的model,然后跳转到了user的model,然后跳回Group的model,在跳入Group的controller,然后最后直接打开group的index.html.erb。如果快的话,十秒钟作用就可以全部完成,你可以算下用atom点鼠标需要多长时间。
20170413149207071953945.gif
比如Rails101的项目,先在iterm中cd到项目目录,然后输入vim
启动Vim编辑器。输入命令:Econtroller groups
,直接会打开app/controller/groups_controller.rb
文件。输入:Emodel post
,会打开app/models/post.rb
。同理可以打开view,helper等等。ps还有个偷懒的小技巧,你只需要输入:Econ
然后按Tab键。去试试看!
更牛逼的是这个插件支持相关性跳转,比如你现在已经在app/models/post.rb
文件状态下了,直接输入:Econtroller
,会直接打开app/controller/posts.rb
。
你以为这就是全部,图样图森破啊。下面是逆天的gf
指令,加入你在app/controller/groups_controller.rb
文件中,光标在def index
这个方法上。按下gf
,直接跳转至app/views/groups/index.html.erb
。再按下Ctrl+6
试试看,是不是返回上一个文件了。
下面是几种常见的跳转方式,注意*
代表光标位置。
位置 | 跳转结果 |
---|---|
has_many :c*omments | app/models/comment.rb |
<%= render 'comm*on/navbar' %> | app/views/common/_navbar.html.erb |
layout adm*in | app/views/layouts/admin.html.erb |
2、非标准目录的跳转ctrlp
插件,在normal模式下按Ctrl+p
,然后输入关键词即可搜索到相关的文件,然后跳转过去。如果有多个结果,按Ctrl+j
和Ctrl+k
来上下选择。其实就是类似于atom下的Ctrl+p
。
3、最近打开的文件中切换。
其实这个比较有用,我们最近可能打开了五六个文件,我们一会要在controller里面写代码,一会要切换到view中,一会还要到其他的controller,虽然也可以利用Rails.vim来跳转,但是如果历史文件不多,直接在历史文件中跳转那会更加方便。
操作方法在normal模式下按Ctrl+o
,就会打开最近打开的文件列表。然后输入关键词,ctrl+j
向下, ctrl+k
向下. 回车选中。
4、如果还是不习惯各种跳转,在适应之前,还想要一个文件列表,那么直接按F8
,会出现目录树,使用Ctrl+w+w
可以跳转过去,然后上下左右选择,回车选中。
5、文件内跳转大杀器:easy-motion
在normal模式下,输入,,w
(注意是两个逗号),然后发现有些字母变色了,我们直接输入想要跳转到位置的字母,嗖~
同理,如果是向前跳,输入,,b
。见下方的GIF,附有按键操作。
2017041314920746883597.gif
高效第二招:自动补全
Snippets
参见这篇教程,Vim自动补全ruby常见语法emmet
这个应该不用介绍了,触发快捷键Ctrl+e
4.感悟
先回答一个小伙伴的疑问,无意加入各种编辑器的纷争,哪种合适就用哪种,atom也有atom的好处,但是既然用了Vim,肯定是为了追求效率,那在依赖目录树这种的不停的寻找文件再打开显然违背了初衷,那么Vim里文件到底应该以什么样的姿势打开?其实上文中已经有提到,总结一下就是:
标准目录直接用Rails.vim附加的各种跳转打开。
非标准目录用ctrlp这个插件用模糊搜索打开。
刚刚才修改过的文件可以在最近使用文件列表中找到。
最后提醒大家一点,不要陷入追求极致工具的大坑,花在工具上的时间以可以高效完成工作为准。不要为了追求极致效率而花费大量的时间。coding只占20%,再提高效率也不如花时间好好思考来的效率高。
以上!
作者:胡奎_Reborn
链接:https://www.jianshu.com/p/140548a10f06
共同学习,写下你的评论
评论加载中...
作者其他优质文章