Vim有一个不错的subversion插件吗?

时间:2011-08-01 22:35:49

标签: svn vim plugins

我一直在使用像NetBeans这样的IDE。 NetBeans有一个很好的版本控制插件。当我有多个项目并同时处理它们时,我可以选择特定的项目来实现它们并让其他人离开。此外,提交框允许我轻松地删除不需要的文件以进行提交。我没能找到Vim的等效插件。

我用过Nerdtree;虽然它有利于项目导航,但它并没有显示我修改了哪些文件夹/文件。在Netbeans中,它会在受影响的树路径旁边显示一个蓝色/绿色图标。

我还喜欢GUI中的其他功能,但我不会在这里列出所有功能。

我真的想切换到Vim,但这阻止了我。有人可以为Vim建议一个类似的插件吗?

更新:由于这是3年前提出的,我已经停止使用颠覆并开始使用GIT,我与vim使用的plugins有Git支持(逃犯)

6 个答案:

答案 0 :(得分:7)

只需使用适当的shell命令(svn commit,svn update等)。为vim创建一个SVN插件真的没有意义。您甚至可以在vim中运行shell命令。例如:

:! svn update

虽然我不确定在SVN的情况下这会带来什么显着优势。

如果我想“欺骗”并查看图形目录结构,有时我会在Eclipse中打开Subclipse - 但绝对没有必要。

要开始使用vim,只需在安装了vim的计算机上打开终端并执行:

vimtutor

你马上就会开始运作。

答案 1 :(得分:5)

有一些用于颠覆的vim插件,尽管它们都没有为您提供您想要的完全类似IDE的集成。使用git可以做得更多,因为它本身就更灵活,而且,如果你很好奇,那么fugutive就是一个非常漂亮的插件:http://vimcasts.org/blog/2011/05/the-fugitive-series/

但是,到了这一点。以下是一些可能有助于您的特定请求的插件,以及一些更常见的插件:

  • 沙箱:http://www.vim.org/scripts/script.php?script_id=2468。它并不完全符合您的要求,但您可以将它用于同一目的。每当您想要查看存储库的状态并有选择地提交文件时,您可以执行Sandbox命令并按照说明进行操作。但该脚本确实说“仅限Linux”。你没有提到你正在使用的操作系统,所以如果你在Windows上,我不知道它是否能正常工作。
  • VCSCommand:http://www.vim.org/scripts/script.php?script_id=90。这个给你diffs,登录特定文件,责备,还原和其他一些东西。界面由命令或映射组成。
  • svn_commit:http://www.vim.org/scripts/script.php?script_id=1451。一个非常小的脚本,“记住”最后一次提交消息,所以如果您取消提交添加/删除文件,则不必再次输入。

同样,你可能不会得到你想要的整合。 Vim非常灵活,但某些IDE功能很难在其中运行。我可以看到一个可能的解决方案,但需要一段时间才能正确编写和测试。我很抱歉,但你必须要么适应使用命令行客户端,比如@mattkelly建议,要么考虑使用外部程序来处理提交,遵循@romainl的建议。

答案 2 :(得分:3)

我推荐VCSCommand。它具有开箱即用的方便映射,并且可以与svn,git和hg一起使用。但是,它本身并没有真正的“GUI”;我认为你不会发现许多面向vim的资源。

答案 3 :(得分:2)

首先,我完全支持@matkelly的回答:你不需要任何插件来在VIM中使用SVN。

作为一个狂热的vim用户,我想提供一些关于使用vim作为IDE以及subversion集成的一些指示。我刚刚使用vim屏幕拍摄的快照很少,所以你有一个视觉效果。

我来自日食背景。虽然现在我主要在我的Fedora工作站上编写VIM代码。我仍然使用eclipse处理其擅长的某些任务,例如Mylyn / Tasktop集成(通过Planning Perspective),它与subversion和bugzilla集成,以帮助我编写特定于任务的提交消息。

在VIM中,要轻松地与SVN进行交互(以及一般的shell任务),你需要知道一些快捷方式:

我得到了我正在处理的文件的日志:

:!svn log -l3 %

'%'是一个特殊的快捷方式,它被当前文件路径替换.Above命令列出当前文件的最后3条日志消息。

猜猜这个命令是做什么的?

:!svn diff %

'%:h'为您提供当前文件所在的目录:

:!svn status %:h

虽然我是关于这个主题的,但是对于想要从GUI-IDE切换到vim并且很难浏览数千个项目文件的新vim用户来说,这里有一些指示:

我推荐NERDTree插件,它打开一个类似IDE的目录树,并在树中找到当前文件。它仅在极少数情况下对我有用(删除,复制,移动文件或设置我当前的工作目录)。但如果我想要的是从我的项目中的数百个文件中找到特定文件,我只需输入:

:find Inventory.pm

很酷的是,我可以部分输入文件名并点击[TAB],这会为我扩展文件名!如果有多个匹配,它只是遍历列表,直到找到我想要的那个。

这是我的编码会话开始的第一个命令;我CD到我的项目根文件夹(因为vim的'path'设置设置为'。'),启动VIM并输入:find Filename。我没有使用过的GUI IDE可以快速解决这个问题。然后,如果我想浏览我的项目文件夹,我只需点击F10,它映射到NERDTreeFind,并使用jklm VIM命令来导航目录结构。

当我在VIM中打开多个缓冲区(文件)时,为了轻松导航打开的缓冲区,我使用“Buffer Explorer”。

当我在VIM中键入方法或某个关键字时,我键入“CTRL-N”,这会打开标记列表(我通过cron设置了丰富的ctags)。

“标签列表”插件也是必须的,它打开当前缓冲区中的函数/方法列表,找到您当前使用的方法,并专注于它。

VIM Screenshot1

VIM Screenshot2

答案 4 :(得分:1)

您可以尝试使用GitHub中的插件https://github.com/juneedahamed/svnj.vim

答案 5 :(得分:0)

对于简单的任务,你应该遵循mattkelly的建议:

:!svn co path/to/repo .
:!svn add .
:!svn commit -m 'first commit'
:!svn update

然而,将文件操作留给专门为此设计的工具可能更有意义。

适用于WindowsMac OS XLinux的SVN文件资源管理器插件。它们足够强大,可以轻松处理大多数情况。

如果您必须处理非常复杂的情况,您是否考虑过RapidSVNSmartSVN等专用图形工具?