考虑从TextMate转移到Vails for Rails dev。我需要什么?

时间:2010-02-15 22:01:33

标签: ruby-on-rails vim textmate

我完全专注于Ruby on Rails开发。我目前使用TextMate在OS X中开发。我有一个虚拟机正在运行,以尽可能地模拟我的应用程序将部署到的环境,并且我将来自VM guest虚拟机的Samba共享上的代码安装到OS X中。从那里我用TextMate打开并编码。

我开始认为通过适当的插件和学习时间,我可以直接在VM上使用vim。现在我的TextMate基本上是库存,但我发现ProjectPlus插件是不可或缺的。我正在寻找的是一些关于vim资源和插件的建议(如果这是正确的术语)来模拟我不愿意在TextMate中放弃的功能。或者至少,令人信服的理由为什么我应该愿意放弃它们。这是一个简短的清单:

  • 能够随时看到(最好)可折叠的项目树,或者可以轻松切换。
  • 能够在此项目树(首选)或其他内容中一目了然地查看SCM状态。 (如果这有任何区别,我几乎只使用git。)
    • 能够从vim中查看并排差异也很棒
  • 能够随意搜索整个项目(我认为:stop; grep -nr; fg;会完成此任务,除非有更好的方法。)
  • 代码完成,如果可能

10 个答案:

答案 0 :(得分:27)

NERD Tree插件为您提供了一个可折叠的项目树。就个人而言,我发现netrw插件绰绰有余,而且这通常是与Vim一起安装的。虽然NERD树感觉好像它试图模仿其他IDE(和TextMate的项目抽屉)的行为,但我觉得netrw插件以Vim的方式做事。我建议你尝试两种方式,看看你喜欢哪种方式。

fugitive插件为Vim提供了一个git接口(请参阅Vimcast:部分12345 )。

ack插件非常适合搜索整个项目。您需要阅读Vim的quickfix列表以充分利用它。

TextMate的单词完成由 esc shift - esc 触发。在Vim中,您在插入中使用 ctrl - n ctrl - p 获得类似的autocomplete功能模式。检查:help ins-completion(更多!)更多信息。

我正在vimcasts.org运行一系列关于学习Vim的截屏视频。我的背景是使用TextMate,但我现在已经使用Vim一段时间了。在我写这篇文章时,我只有6集,但我确实计划涵盖你在未来剧集中提出的每一点。我会尝试回来编辑这个答案,并附带截屏视频的链接。

答案 1 :(得分:6)

答案 2 :(得分:4)

我目前处于类似的位置(从TextMate转移到Vim)

这是一个非常好的资源:

http://robots.thoughtbot.com/post/166073596/intro-rails-vim

祝你好运!

答案 3 :(得分:4)

对于文件导航,只需要爱CommandT
这与textmate中心爱的commandT函数非常相似。

答案 4 :(得分:2)

您可能希望从我的Ruby / Rails相关vimfiles开始,其中包括对rvm和git的支持。

答案 5 :(得分:1)

此截屏视频也非常棒http://blip.tv/file/1372096

我确实使用VIM,我特别喜欢如何从模型/视图和控制器相关旋转..

答案 6 :(得分:1)

搜索整个项目here.

代码完成:在插入模式下,通常使用 ctrl - X 然后 ctrl - O 完成。< / p>

Git Integration:git.vim

项目树:Nerdtree.vim

祝你好运

答案 7 :(得分:1)

查看博文:From Textmate to VIM for Rails coders

那里的评论对你也很有价值。

答案 8 :(得分:1)

所有其他答案加上:

  

能够在任何时候都可以看到(最好)可折叠的项目树,或者可以轻松切换。

  • project.vim插件实际上并不像TextMate的Project抽屉那样,但它很接近。
  • 使用NERDTree,您可以设置书签,使其有点像项目抽屉。
  • :help mkview:help mksession也可以提供帮助。
  

能够在此项目树(优选)或其他内容中一目了然地查看SCM状态。 (如果这有任何不同,我几乎只使用git。)

  • vcscommand.vim为多个SCM提供相同的命令集,它可以与Git,SVN,Mercurial一起使用......
  • 您可以使用上述逃犯插件在状态行:help fugitive-statusline中显示Git状态。
  

能够从vim中查看并排差异也很棒

  • fugitive提供了:Gdiff命令。
  • 最近发布的名为Gitv的插件尝试在Vim中模拟GitK。我非常喜欢它,作者非常敏感。在树视图中,点击<CR>以在另一个窗口中打开上一个提交,然后点D以查看双差异。
  

代码完成,如果可能

  • 有一些解决方案,如果你不需要自动<C-x><C-o><C-n><C-p>就足够了,如果你想要“自动完成”,你可以试试these few plugins。我最喜欢的是autocomplpop

答案 9 :(得分:0)

我今天发表了关于这个主题的扩展帖子,其中我解释了如何从VIM中的Textmate复制100个功能。这是大量研究的结果。

例如我解释:

  • 如何复制项目抽屉
  • 如何管理标签
  • 如何执行Rails特定命令(让我们面对它:很多Textmate用户都是Rails程序员)
  • 如何查找和替换
  • 如何进行项目范围的搜索

阅读原创文章: Textmate To VIM