- 浏览: 168283 次
- 性别:
- 来自: 广州
最新评论
-
dongxuef:
正奇怪呢,原来你也没深究.源码中_params被default ...
在Rails的controller中访问params的一个小细节 -
sunsonavaj:
Rails 3 下自定义错误信息显示页面 -
Hooopo:
Thx!
ubuntu下让netbeans的字体变得好看些 -
ybffnst:
paperclip 对错误消息的处理是对字符串进行处理的,不支 ...
如何自定义处理ActiveRecord中的errors信息 -
wozhidao:
这个方法有个很大的bug,远程图片的时候是取不到扩展名的,上传 ...
paperclip定制文件名
学习和开发Ruby & Rails已经一年多了.但是正式全职Rails项目的开发只有可怜的4个月经验.这期间我一直使用Netbeans 6.x作为开发工具,到目前为止我依然认为它是开发Ruby & Rails程序的最佳开发工具(我没用过最新出来的RubyMine,另外这是一个付费产品,我也不会付费用它,但也不会用D版).
在网上可以看到很到开发Rails的同学使用Vim这个神器来开发的(就在JaveEye也有不少).但是由于我的vim水平只局限于只会使用有限的几个命令( i, :w, :x, dd ).所以我一直都觉得用Vim来开发有点儿不可思议,另一个原来是我是从Java转到Ruby的,习惯使用IDE.
这种情况一直到某天夜晚, Arbow 同学出于某不可知的原因发了一个Vim for rails的图片链接给我看( 这里 ),于是发生了我一夜折腾Vim for Rails的惨剧.
试用了两天Vim for Rails,发现用起来并没有我想象中的那么难,相比于Netbeans的最大优点就是快!什么都快! 打开/查找文件,搜索等等,什么都快,什么操作基本上都是按下Enter之后,立马就出来了.启动速度更加不用说了.但是这个前提就是你得安装好你要用到的插件,另外还有一些vim的常用配置(以前我一听到配置,心里就开始打退堂鼓了,其实没那么恐怖的,只要你认真在网上学习一下,不得不说的是vim的配置在网上真是多到不得了).
安装VIM
我的开发机器用的操作系统是Ubuntu 9.04,所以下面的安装配置都是针对Linux系统的.我除了安装命令行界面的VIM外,还装了一个GUI界面的,为了可以独立启动它.
sudo apt-get install vim sudo apt-get install vim-gtk //很明示这个是gtk gui支持的vim,在命令行下面的启动命令是: gvim
提醒一下,Ubuntu系统默认安装的vim是一个简化版本,很多东西都不支持的,比如语法高亮.
如果要配置你的VIM,你还要两个配置文件(一个专门用于gvim的.),都是放在你的用户根目录下:
~/.vimrc 这个是vim的配置
set guifont=Monaco\ 11 " set guifontwide=WenQuanYi\ Zen\ Hei:h12:cGBK " 设定文件浏览器目录为当前目录 set bsdir=buffer " 设置编码 set enc=utf-8 " 设置文件编码 set fenc=utf-8 " 设置文件编码检测类型及支持格式 set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 " 设置开启语法高亮 syntax on "显示行号 set number " 查找结果高亮度显示 set hlsearch " tab宽度 set tabstop=4 set cindent shiftwidth=4 set autoindent shiftwidth=4 filetype plugin indent on " 把 F8 映射到 启动NERDTree插件 map <F8> :NERDTree<CR> " 把 CTRL-S 映射为 保存,因为这个操作做得太习惯了 imap <C-S> <C-C>:w<CR>
~/.gvimrc 这个是针对GUI界面的配置
"把gvim的菜单和工具栏隐藏掉,按F2可调出,再按隐藏 set guioptions-=m set guioptions-=T map <silent> <F2> :if &guioptions =~# 'T' <Bar> \set guioptions-=T <Bar> \set guioptions-=m <bar> \else <Bar> \set guioptions =T <Bar> \set guioptions =m <Bar> \endif<CR> " 启动gvim时窗口的大小 set lines=33 columns=113
插件
可以自己到 VIM网站 下载,一般来说zip,tar.gz打包的文件,直接解压放到 ~/.vim目录下就可以了,如果是 plugin_name.vim 文件就更加简单了,直接放到 ~/.vim/plugin下面,省心又省事. 在下载页面上一般都有一个 install Detail的说明,那就是安装说明,多看一眼,你会少走很多弯路的.
我安装的VIM插件,我是参考 http://linuxtoy.org/archives/ruby-rails-on-linux.html :
- rails.vim 这个是rails的插件,必不可少的.
- snipMate 这个就是号称让VIM跟MAC下的神器TextMate有同样表现的插件,也是必装的.
- NERD_tree 显示目录树,我觉得比那个Project.vim要好用多了,所以我没有装Project.vim
- supertab.vim
- NERD_commenter.vim 快捷来加删comment的,不过我好像还没用过.
- lookupfile.vim 找文件,如果你只是用来开发rails的话,可以不用.
- bufexplorer.vim buffer切换
- genutils.vim
- javascript.vim
- blackboard.vim 这个就是模仿TextMate的配色,很重要.
- Monaco字体 这个不是插件,不过这个字体很漂亮 下载地址: http://www.webdevkungfu.com/textmate-envy-aka-monaco-font-for-windows/
基本上vim for rails 已经可以用了.放上我的效果图:
使用
- 不是所有的vim插件都会自动启用的.一般的vim插件都是要使用命令来启动的,我刚用的时候不知道这个,抓狂了一阵子.比如你要使用NERDTree插件,要先输入如下命令:
:NERDTree //我把这个命令映射到 F8 了,请看上面的配置文件.
- rails.vim插件只有一个全局的命令Rails,这个会新建一个Rails项目.
- 其它的rails.vim的命令都是要找开了Rails项目的文件才能使用的,这个我很是郁闷.比如你想查找一个user.rb文件打开,本来是应该使用 Rfind user.rb ,但是由于你的VIM没有打开任何Rails项目中的文件,这个命令不可用!!
- 下面说说我一般的使用方法:
- 打开vim,先cd ~/my_project_path
- 按一下F8,启动NERDTree插件,把我的项目目录树显示出来.
- 一般rails使用命令:
#如果你要找一个文件 :Rfind routes.rb #如果你想打开一个model :Rmodel user #如果你想打开一个conotroller :Rcontroller users :Rcont users #如果你想打开一个view :Rview users/index :Rview users/_user #如果你的当前窗口的文件是在app/views/users/下的话 :Rview show #相当于 :Rview users/show #如果你当前光标是controller的index方法中,直接按 R 可以中转到视图文件 index.html.erb中 #其它的方法如 :Rserver #启动服务器 :Rserver! #停止服务器 :Rjavascript js_name #打开js文件 #还有很多,输入帮助命令自己看吧 :help rails
- 不要使用 :Rlog 在vim上看日志文件,因为我用的时候,发现它更新时很慢,要等一下才会输出.还是老实地在终端上用 tail吧.
试用了两天,觉得还可以,效率很高,弄好那个配色之后,看着非常舒服,还有就是vim的速度,真的是非常快,什么都快.
Netbeans的长处在于文件,方法之间的跳转非常的方法,但是就是启动慢,查找的时候也比较慢,有时会有些不耐烦.
我还未决定是否会使用vim作为主力开发工具,毕竟Netbeans有很多我无法舍弃的优点,还有就是对快捷键的习惯(我以前用Java的时候,使用的是Eclipse,到现在使用netbeans还是使用Eclipse的快捷键,由此可见习惯是多么难改变).
评论
Align: http://www.vim.org/scripts/script.php?script_id=294
很好用,下下来有2个部分,Align和AlignMaps。AlignMaps是一些快捷键映射,因为添加的映射实在太多了,用:map看着闹心,也怕和我现有的映射有冲突,装好后就把autoload中的AlignMaps.vim和plugin里面的AlignMapsPlugin.vim删了。不过喜欢这些快捷键映射的话就用默认的也不错。
http://vim.wikia.com/wiki/Regex-based_text_alignment
name :string company :string address_1 :string address_2 :string city :string state :string
如何格式化为
name :string company :string address_1 :string address_2 :string city :string state :string
需要什么插件么。
VIM可以格式化代码吗,或者有其他能格式化代码的插件吗?如果可以或者有,我们就可以自己改造了
name :string company :string address_1 :string address_2 :string city :string state :string
如何格式化为
name :string company :string address_1 :string address_2 :string city :string state :string
需要什么插件么。
命令是 :!ctags -R
可以在当前目录下生成包含所有文件tags(包括子目录)的一个名为 tags 的文件
建议在项目根目录下生成
需要跳转时,把光标停在方法名上,按ctrl+]就可以跳到定义这个方法的代码处,
按ctrl+o可以跳回原处
刚测试了一下rails也没问题。但如果在tags文件所在的子目录下打开文件并尝试跳转时
会提示找不到tags文件,而这个tags文件中的tag所指文件路径都是相对tags文件所
在当前目录的相对路径,所以把这个tags文件简单copy到别的目录也不行,会提示找
不到要跳转的那个tag所在的文件。
我只有一个笨办法解决,在 _vimrc 文件中加上一句
set tags+=你生成的tags文件的 full path
然后重新打开文件,就可以实现跳转了
刚刚又试了一下好像在rails的项目里跳转还是蛮准的,但是只能够实现文件的跳转,能不能实现不同文件中间方法的跳转呢?谢谢了
不同文件间方法的中转好像是不能的.
我通常都是先跳到文件,然后搜索方法,反正vim的搜索超快,不用就浪费啦.
搜索的命令是 :/keyword
嗯,我现在也是这么干的,但是有时候搞个新项目你代码结构都不怎么熟,不知道这方法属于那个类或模块就比较麻烦了,rails还好点代码组织都差不多,纯ruby项目就不好弄了,好像有个taglist插件我得去研究研究!!!
刚刚又试了一下好像在rails的项目里跳转还是蛮准的,但是只能够实现文件的跳转,能不能实现不同文件中间方法的跳转呢?谢谢了
不同文件间方法的中转好像是不能的.
我通常都是先跳到文件,然后搜索方法,反正vim的搜索超快,不用就浪费啦.
搜索的命令是 :/keyword
否则你就会像我一样, 用了两年了, 还时常发现有些很有用的摩纳哥领
编辑多个文件的话,可以这样:
//用 :sp 命令分割窗口,然后在各个窗口打开不同的文件就可以了. :sp
点击文件名就跳转,在vim下可以这样:
1.把光标移动到单词处,如user
2.按下 gf 就会自动查找并打开 user.rb 这个文件了.
(这个功能貌似是 rails.vim的)
刚刚试了一下sp还是蛮不错的,只是刚开始有点不习惯。gf搜索跳转就不行了太不智能了 Test.new 它好像会去找Test.new.rb,应该不会像Neatbeans代码跳转这么强大吧,我也感觉有点过份了呵呵!!!
刚刚又试了一下好像在rails的项目里跳转还是蛮准的,但是只能够实现文件的跳转,能不能实现不同文件中间方法的跳转呢?谢谢了
编辑多个文件的话,可以这样:
//用 :sp 命令分割窗口,然后在各个窗口打开不同的文件就可以了. :sp
点击文件名就跳转,在vim下可以这样:
1.把光标移动到单词处,如user
2.按下 gf 就会自动查找并打开 user.rb 这个文件了.
(这个功能貌似是 rails.vim的)
刚刚试了一下sp还是蛮不错的,只是刚开始有点不习惯。gf搜索跳转就不行了太不智能了 Test.new 它好像会去找Test.new.rb,应该不会像Neatbeans代码跳转这么强大吧,我也感觉有点过份了呵呵!!!
编辑多个文件的话,可以这样:
//用 :sp 命令分割窗口,然后在各个窗口打开不同的文件就可以了. :sp
点击文件名就跳转,在vim下可以这样:
1.把光标移动到单词处,如user
2.按下 gf 就会自动查找并打开 user.rb 这个文件了.
(这个功能貌似是 rails.vim的)
应该是vim还没有加载rails.vim插件的原因,虽然rails.vim有autoreload,但是好像不太靠谱.我也遇到过这个问题.
解决的方法:
用vim随便打开一个在你的rails项目中的rb文件,这时rails.vim会自动加载,再运行Rserver就没有问题了.
Not an edit command: Rserver 怎么回事?
http://easwy.com/blog/
linux下用curlftpfs把ftp映射为本地目录
发表评论
-
Rails 2.3.12下遇到的named route的诡异问题
2011-08-14 21:18 1660周五的时候把网站升级到Rails 2.3.12,本来在本地测试 ... -
ActionMailer的一些配置
2011-08-14 20:59 1667一般情况下,如果你使用gmail的话,都是这样配置的: A ... -
如何自定义处理ActiveRecord中的errors信息
2011-07-26 23:33 2901今天写代码的时候,客服MM向我反馈了一个问题,这个问题本身是很 ... -
Rails 3 下自定义错误信息显示页面
2010-07-08 15:21 3764大家都知道想在Rails下自定义错误显示的页面是修改 resc ... -
paperclip定制文件名
2010-07-02 14:25 3372在新项目中使用了paperclip这个文件上传插件,一切都很满 ... -
Sinatra:一个可以作为Rails有益补充的框架. 简洁而不简单
2010-04-04 15:08 7171一个基于Sinatra的小程序 前些天有一个需求,需要写一个 ... -
require特定版本的gem
2010-03-31 21:07 2581今天有一个需求要单独地使用ActiveRecord,但是我的机 ... -
从Rails 2.3.5 升级到 Rails 3.0 beta
2010-03-27 22:12 2157因为有一个新的项目打算使用Rails 3.0 beta,所以先 ... -
命名时请留意Rails下的关键字
2010-01-22 17:36 2067前些天我在做一个支付集成的接口,对方返回的结果串里面有一个 e ... -
rails下自定义出错页面
2010-01-22 17:17 2357rails出错的时候,一般都是跳转到错误跟踪的页面下,这样在开 ... -
rails下修改http头(http header)
2010-01-22 17:08 5201其实就是修改response中一个叫做headers的Hash ... -
在Rails的controller中访问params的一个小细节
2009-12-02 22:36 7300大家都知道controller中的params其实是一个Has ... -
Thinking Sphinx + Coreseek + rmmseg的安装与使用
2009-10-06 23:48 3819要在Rails上使用全文检索,选择一直不多,以前我一直是使用F ... -
Migrations流水帐
2009-07-11 16:02 1283对于Rails的迁移功能Migrations,一直都只是看一下 ... -
重新安装ruby遇到的问题
2009-06-13 13:14 1325昨天重装了操作系统,要重新安装ruby环境. 因为以前 ... -
JRuby使用经验
2009-05-10 17:06 1974首先我是一个Java程序员 ... -
使用ri查看Rails的API
2009-03-25 23:31 4484我一直都比较习惯直接到 http://www.ruby-doc ... -
Ubuntu Linux下ruby 1.9.1和Rails 2.3升级记录
2009-03-22 00:22 4437安装 ... -
今晚用上了ruby的动态方法调用,open class和mixin三大神器
2009-01-12 00:43 2229今晚人品爆发,一举用上了ruby的动态方法调用,open cl ... -
让rails中多态关联的方法名更加人性化
2008-12-02 22:55 2434rails中的多态关联功能,很好很强大。 但是多态关联的方法 ...
相关推荐
My Vim for Ruby on Rails 开发 MacVim 用户警告 我已经停止使用 MacVim(主要是)并开始在 Tmux 中使用控制台 Vim。 提取到分支的最新 MacVim 配置不再受支持。 但仍包含此处描述的大部分功能。 特征 Ruby on Rails...
现在,你已经在Ubuntu 10.10上成功构建了一个包含Vim和Ruby on Rails开发环境的系统。通过持续学习和实践,你将能够更高效地利用这个环境进行Web应用开发。记住,定期更新系统和依赖,以确保安全性和兼容性。
”这句话生动地描述了Ruby on Rails的独特之处以及它在Web开发领域的影响力。 #### 二、安装 安装Ruby on Rails的方法多样,具体包括: - **InstantRails**:适用于Windows用户的单击安装包。 - **Locomotive**:...
`vim-rubymotion` 是一个专为 RubyMotion 开发者设计的 Vim 插件,它的目标是为 Vim 提供与 `vim-rails` 相似的强大支持,使得在 Vim 编辑器中进行 RubyMotion 项目的开发变得更加高效和便捷。尽管当前该插件可能还...
这个 vagrant 配置文件旨在构建一个随时可用的 Rails开发环境。 什么是流浪者? Vagrant 是一个创建虚拟机的工具。 你可以在 Mac、Windows 或 Linux 上安装 Vagrant 创造环境 $ git clone ...
在当今数字化时代,越来越多的开发工具和环境正逐渐转向云端,以适应全球化、协作和高效开发的需求。本文将详细介绍8个最佳的云端集成开发环境(IDE),它们为开发者提供了便捷、灵活且功能丰富的编码体验。 1. **...
Rails 6 是 Ruby on Rails 框架的一个主要版本,带来了许多新特性和改进,旨在提升开发效率和应用性能。本文将深入探讨 Rails 6 的关键特性,以及如何利用 Shell 命令来管理和操作 Rails 项目。 首先,Rails 6 引入...
此外,了解并掌握一些开发工具,例如Visio、Dreamweaver、Visual Studio、Eclipse、Vim、EditPlus或Notepad++,以及数据库管理工具如phpMyAdmin,浏览器及其开发者工具如Firebug和Web Development Helper,这些都是...
4. **Ruby**:Ruby是一种动态、面向对象的脚本语言,常用于Web开发(如搭配Rails框架)和自动化脚本。 5. **MacVim**:MacVim是在macOS上运行的Vim文本编辑器的一个版本,它提供了与系统更好的集成,如使用Mac的...
Redmine 是一个基于 Web 的项目管理工具,使用 Ruby on Rails 框架开发,需要特定的 Ruby 和 Rails 版本。下面是安装 Redmine 和 Apache2 的详细步骤。 一、安装 Redmine 需要的 Ruby 和 Rails 版本 Redmine 需要...
为Ruby on Rails开发定制Lubuntu。 工具:Vim,RVM,Ruby 1.9.2,Rails 3.1,Tmux,Open Ssh Server,VirtualBox无缝集成。
对于Mac用户来说,TextMate无疑是一款强大的编辑工具,尤其是在Ruby on Rails开发中发挥着重要作用。本文将基于《TextMate: Power Editing for the Mac》这本书的内容,深入探讨TextMate的各项特性及其对开发者的...
Aptana不仅支持JavaScript,还支持Ruby on Rails,并随着技术发展增加了对iPhone和Adobe AIR的开发支持。它拥有代码辅助、代码结构概览、语法错误检查、自定义UI扩展和跨平台兼容性,特别适用于Web2.0应用程序的开发...
gitlab_rails['time_zone'] = 'Asia/Shanghai' puma['worker_processes'] = 2 sidekiq['max_concurrency'] = 8 postgresql['shared_buffers'] = "128MB" postgresql['max_worker_processes'] = 4 prometheus_...
GitLab是一个基于Ruby on Rails开发的开源平台,与GitHub相似,它提供了浏览源代码、缺陷跟踪和注释等功能,使得团队成员可以高效地协作开发项目。 在GitLab服务的组成部分中,以下列出的关键组件至关重要: 1. **...
Ruby是一种面向对象的、动态类型的编程语言,广泛用于Web开发,特别是与Rails框架的结合。在安装过程中,我们需要确保Ruby环境已经就绪,并且版本符合Fabriquartz的要求。通常,安装Ruby可以通过管理工具如RVM(Ruby...
2. 使用yum命令安装所有必需的依赖包,这些包涵盖了开发工具、系统工具、编程语言及其开发环境、数据库和网络相关工具等。 3. 这些依赖包包括但不限于vim、readline、ncurses、gdbm、glibc、tcl、openssl、curl、...
在开发领域,不断练习和提升技能至关重要。...同时,不要忘记使用版本控制工具(如 Git)跟踪你的进度,并通过 Vim 提升编码速度。积极参与开源项目和黑客马拉松,可以让你在实践中提升技能,积累实战经验。