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

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

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

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

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

逃逸插件为Vim提供了一个git接口(参见Vimcasts:第1,2,3,4和5部分 )。

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

TextMate的单词完成由escshiftesc触发。 在Vim中,您可以在插入模式下使用ctrl -nctrl -p获得类似的自动完成function。 检查:help ins-completion (更多!)更多信息。

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

和snipMate:Vim的TextMate风格的片段

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

一个非常好的资源是:

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

祝你好运!

对于文件导航简直就是喜欢CommandT
这与textmate中心爱的commandT函数非常相似。

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

这个截屏video也很棒http://blip.tv/file/1372096

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

查看博客文章: 从Textmate到VIM for Rails编码器 。

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

所有其他答案加:

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

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

能够一目了然地查看SCM状态,无论是在此项目树中(首选)还是其他。 (如果这有任何区别,我几乎只使用git。)

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

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

  • fugitive提供:Gdiff命令就是这样做的。
  • 最近发布的一个名为Gitv的插件试图模仿Vim中的GitK。 我非常喜欢它并且作者非常敏感。 在树视图中,按打开另一个窗口中的上一个提交,然后点击D以查看双差异。

代码完成,如果可能的话

  • 有一些解决方案,如果您不需要它自动将绰绰有余,如果您想要“自动完成”,您可以尝试这些插件 。 我最喜欢的是autocomplpop 。

在这里搜索整个项目。

代码完成:通常在插入模式下使用ctrl -X然后ctrl -O完成

Git Integration:git.vim

项目树:Nerdtree.vim

祝好运

我今天发表了关于这个主题的扩展post,其中我解释了如何从VIM中的Textmate复制100个function 。 这是大量研究的产物。

例如我解释:

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

阅读原创文章: Textmate To VIM