Vim作为Visual Studio的IDE

15

我花了很多时间研究VIM。过去6年我一直使用Windows,并使用VS。 现在开始在Linux上工作。我希望让VIM尽可能接近VS。 我想要的特性包括: 项目导航 不同标签页中的文件 项目中的搜索 自动完成

我已经为以上需求找到插件: Project Pligin MiniExplore Taglist OmniComplete

我无法正确设置vimrc脚本。 当我尝试从项目中打开文件时,它会在不同的标签页中打开,但我希望它能够在不同的缓冲区中打开。 而且,当我想关闭缓冲区中的文件时,整个窗口都被关闭了。 打开taglist和project窗口会造成很多混乱。

有人用这些插件进行了设置吗? 你们能否贴出你们的vimrc文件? 这将节省像我这样的新手很多时间。


33
你所询问的是一种可憎的行为。 :-) - paxdiablo
9
如果你不想帮助就算了,但请不要发些愚蠢的评论。我真的不知道你在说什么。 - anand
22
我建议你培养一下幽默感。这是消息末尾的“:-)”所表示的意思。 - paxdiablo
7
paxdiablo,你是来逗人开心还是帮助他们的? - archmage
4
大法师,这两者并不是互相排斥的。 - Sean
6个回答

38

Vim是一款与Visual Studio非常不同的工具。插件可能会帮助您获得所需的某些功能,但不要期望它们能像VS一样工作,协同工作良好,甚至是否正常工作都不能确定。

如果您正在寻找更类似于Visual Studio的编程环境,有许多优秀的图形化IDE可供使用,例如NetBeans、Eclipse、Code::Blocks、KDevelop、Anjuta等。其中一些工具在我看来是比Visual Studio更好的重量级IDE,并且所有这些工具都可以免费在Linux上使用。

您应该要么学会使用Vim的原始方式,要么找到适合您的其他工具。将Vim硬塞到Visual Studio的代替品中可能会给您造成更多的痛苦,得不偿失。


1
实际上,我使用带有jVi插件的NetBeans很长一段时间,直到我对NetBeans崩溃感到非常厌烦,现在我又回到了使用纯Vim。 - postfuturist
2
这似乎是唯一一个真正理解问题的答案。 - Jim Mitchener

17

没错,它与VS不同,但这并不意味着不能以相同的方式使用。只是没那么容易 :)

个人而言,我选择反向操作,使用ViEmu让VS的行为像VIM一样。但我和提问者的情况不同。

为什么不在dotfiles.org上浏览一下上传的vimrc文件呢?


2
现在看到这篇文章的任何人都应该查看一下 Visual Studio 的免费插件 VsVim:http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 - Boushley
@Boushley VsVim 还不够成熟,远远没有 VIM 的功能水平。如果你想使用 VS 插件,那么 ViEmu 是一个更好的选择。 - OJ.
@OJ 我完全同意你的观点,没有哪个插件真正能比得上 Vim 本身。然而,在某些情况下,对于某些人来说,插件是最好的选择。我使用 VsVim 的体验非常不错,它正在积极开发中,并且不断变得更好。ViEmu 有哪些特别出色的地方吗? - Boushley
@Boushley 没错,首先VsVim中的命令覆盖率不如ViEmu,也没有那么精细。此外,相当多的命令性能也较差。如果只是简单使用还好,但如果你是中级VIMmer,那么用VsVim很快就会感到沮丧。虽然ViEmu也不完美,但没有什么比真正的VIM更好了 :) - OJ.
@OJ 完全同意。我已经被大多数插件所折磨,以至于我不再期望更多的功能,只能使用基本的按键映射。 - Boushley
1
@OJ,虽然我很想同意你的看法,即插件不够完善或其他什么问题,但插件页面上的100多条评论表明情况并非如此。实际使用vim在*nix上以及在VS中使用此插件的人似乎非常满意! - Annie

8
您可以使用以下脚本 Trinity。 http://www.vim.org/scripts/script.php?script_id=2347 它需要另外三个脚本,Vim 将看起来像一个 IDE。在左侧是 TagList,在右侧是文件浏览器(NERDTree),在底部是源代码浏览器。
此外,您可以在http://kevin-berridge.blogspot.com/search/label/vim找到一些非常有用的博客文章。作者 Kevin 解释了如何从 Vim 内部编译解决方案。他还展示了界面和跳转之间的操作,这也非常有用。
此外,还有 vim-visual-studio 脚本,可以在http://code.google.com/p/vim-visual-studio/找到。
该脚本使用 Python 扩展程序。我已经在 Windows 上安装了 Python 2.5。我正在使用编译有 Python 2.4 的 Gvim 7.2。因此,我已按照此处所述更换了 Gvim 的可执行文件:http://www.gooli.org/blog/gvim-72-with-python-2526-support-windows-binaries/。因此,Gvim 与 Python 2.5 兼容,并且没有出现问题。同时,“Visual Studio”菜单项已如预期出现。它连接到 Visual Studio 本身,并且完美地工作。它不仅可以编译一个文件,还可以像 Visual Studio 中一样编译包含多个项目的解决方案。您甚至可以使用 Vim 的“快速修复”功能。希望这有所帮助。

6
如果你真的想将vim作为前端界面,可以尝试Eclim。它使用Eclipse作为后台守护进程来进行代码补全和项目管理,并将vim用作界面。
如果你只喜欢vim的vi键绑定,但希望它更像IDE,可以尝试最新的MonoDevelop,它内置了此功能。

我认为你需要重新阅读他的问题。他似乎想要与你所建议的相反的东西。他希望 Vim 的行为更像 Visual Studio。而不是相反的情况。 - Jim Mitchener
我阅读了他的问题并回答了一个指向Eclim的指针。提到MonoDevelop只是一种替代建议。 - Claes Mogren

1

这些插件在 vim 有选项卡之前就已经存在了。我很惊讶这些插件没有办法调整以分割窗口而不是打开选项卡。 由于我不使用这些特定的插件,所以无法提供太多帮助。您应该查看它们的帮助文档(:h project, :h taglist 等)。

附注:在 vim 的术语中(这将帮助您浏览帮助文件),您所谓的“缓冲区”实际上被称为“窗口”,而“缓冲区”只是您正在处理的文本,它可以与文件关联或不关联。对于给定的缓冲区,可能没有或有多个窗口显示缓冲区的部分。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接