Using Vi, Vim, or GVim as an IDE
我不得不在工作中的大部分项目中使用VS2008,但是每当奇数文本文件需要编辑时,我都使用VIM。
现在我知道有插件和什么不能让Vim像一个IDE一样工作,所以我想知道是否有人真的把它用作一个IDE?
编辑:
对于那些认为你代表大众说VIM不应该被用作IDE的人,请考虑在VIM.org上的官方特性请求列表上,IDE特性是第一个特性请求。
Vim是一款令人惊叹的软件,但由于它的年龄,它也相当混乱。
您可能想尝试这个新的vim补丁,它允许vim作为编辑器在Visual Studio中使用:好的。
- 维维姆
冯德尔
首先,安装VIM的Vundle插件管理器插件!它工作得很好,使管理VIM插件变得容易。处理安装、更新和删除。好的。
例如,您的
1 2 3 4 5 | " === Plugins! === Plugin 'junegunn/fzf' Plugin 'scrooloose/nerdtree' Plugin 'w0rp/ale' ... |
下面的vim脚本给vim更多的IDE感觉。请记住,VIM内置了大量的特性,因此在加载20个插件之前,请花时间学习这些特性(这是一个持续的过程)。好的。
对我来说影响最大的插件是FZF和ALE。您需要安装FZF和Ripgrep。好的。
导航:好的。
- FZF-最喜欢的插件,很棒的文件系统导航和文本搜索
- NERD树-文件系统导航
- command-t-按文件名搜索要打开的项目,建议改用fzf
- ctrlp—一种替代命令T、模糊文件和缓冲区搜索的方法。通常较慢,但不需要编译
- 标签栏-按功能的代码导航
- 书签-VIM书签(我自己的插件:)
文本完成:好的。
- 定界-括号、大括号的自动结束。等
- tcomment-简单注释/取消注释源代码命令
- Ultisnips-伟大的VIM片段系统
- YouCompleteme-代码完成,很多功能
- 新完成-代码完成比YCM稍微简单一些
我个人觉得代码完成太多了,只能依赖于Vim的内置
格式化:好的。
- 表格-轻松对齐文本
- VIM环绕-快速环绕一些文本(即括号、标签…)
棒极了:好的。
- ALE-对许多语言进行实时语法检查,支持VIM 8的新功能,例如异步作业,以确保它在运行时不会冻结VIM。
- 逃犯-在Vim,diff,责备…等
- GitGutter-文件的Git提交版本的实时差异
- 扬克-轻松访问以前复制或删除的文本对象
更好的图形用户界面:好的。
- 航空公司-更容易阅读状态行和更有用的信息
- 将vim undo历史可视化为一棵树(我最喜欢的是,确保在vim中打开持久的undo)
配色方案:好的。
- 日光浴-很棒的配色方案
VIM分布
与其自己进行设置和配置,不如使用下面的项目来使用更像VIM的IDE快速地进行配置。下面的两个项目包括我上面提到的许多插件:好的。
- 詹纳斯
- SPF13
不过,我建议你不要使用它们。如果您花时间自己配置VIM,并在交错的过程中安装插件,以便更好地了解每个插件,那么您将了解更多。好的。VIM插件指南
VimAwesome是一个浏览Vim插件并找到有用和流行的插件的好地方。好的。VIM补丁
除了这些脚本之外,您可能还需要查看以下VIM的一些补丁。我没用过,所以质量不太确定,但大部分看起来都很有前途。您可以在这里查看所有补丁,使VIM更像一个IDE的补丁包括:好的。
- 代码检查-即时代码检查(注意:现在,合成是更好的选择)。
- 提示-允许使用gdb调试和单步执行vim中的代码。
安装了这些脚本和补丁之后,您应该在VIM中拥有一些与Visual Studio或Eclipse非常接近的特性。好的。好啊。
你也可以反过来使用一个名为viemu的插件。这一个为您提供了在vs-ide中的vi模式,这使同事更容易在您的系统上共同驱动。
标签列表是一个很好的插件——没有它不要离开家。
还可以设置选项卡完成。
如果您的语言得到支持,那么全包是一件很好的事情。
VIM提示1439有一个完整的识别提示。
如果您使用Linux,只需尝试pida。您可以将vim或emacs嵌入其中。许多集成,如文件浏览器、项目结构和控制台,使VIM看起来像Eclipse。imho,这是一个使用VIM作为IDE的简单方法。
我不想因为这个反应而发炎,但我想让你省去一些头痛。这是我给所有在维姆问类似问题的人的相同答案。
VIM不是一个IDE。是个编辑。它从来没有打算成为一个IDE,任何试图使其符合这一点的尝试都只会给您带来问题。有一些插件试图为Vim提供一种类似于IDE的感觉,但是这些插件太可怕了。
另一方面,我确实推荐了一些插件,这些插件将帮助您从VIM获得一些扩展功能。这些可能适合你的需要。
- 标记列表-非常适合按函数/方法/类导航代码
- 一个很棒的文件系统导航插件
作为一个IDE,VIM对C和C++有着一流的支持。您甚至有一个带有clewn和gdb的可视化调试器。其他语言,你将不得不做一些调整和摆弄,结果可能达不到你想要的。值得一个小时的尝试,看看进展如何。
我觉得Emacs作为更多语言的IDE做得更好。
在http://code.google.com/p/exvim中尝试exvim这个项目使VIM成为一个多语言开发的IDE。
我单独使用vim-它有一些基本的功能,可以通过^x自动完成,然后使用各种选项(^p表示关键字,^o表示OmniComplete(适用于在Web文件中在HTML、CSS等之间切换)。
它还可以通过以下方式启动命令:!(编译器或其他命令)。
与基本开发的简单、无痛苦的集成,不需要工作区或类似的东西,如果需要的话,还需要文件设置的模型。
编辑:就模块而言,通常有一些模块可以在VIM环境内部或旁边嵌入相关的脚本语言——但是,我不知道类似的.NET框架模块。
有时我会在凯特内部使用vim作为一个IDE,否则我会在vim中打开几个选项卡,这很难更改为。
否则,我会坚持普通的维姆。
kde for windows将允许您在Windows中安装kate。
此外,这些评论还完全取决于它们的撰写年份。所以这些是我对Vim在2018年成为IDE的想法。
语言服务器协议越来越重要,并且源代码图通过其主计划来填充它。
这就是ALE(异步短绒引擎)之所以如此重要的主要原因,因为它实现了LSP。所以它还提供了定位定义、代码完成和悬停信息。我刚开始用它来整理皮毛,我还没有深入研究其他功能,但我认为它有很大的潜力提供很多预期的IDE功能。
但是几乎所有普通的东西,从tim pope+fzf+ripgrep+ale,都会让你成为一个非常强大的编辑。
坦率地说,"一切都是蒂姆·波普"的编辑是一个VIM IDE最好的起点之一(我甚至为此创建了VIM-Tim)。
我唯一不同于大卫·特瑞的绝妙答案的地方是:
- 基础知识:蒂姆·波普的痴迷是拯救你已经打开的缓冲区的基础。
- 导航:FZF+Tim Pope's醋+使用缓冲器,因为它们是完全预定的
- 文本完成:超级选项卡(ALE应该可以用于此操作)
- 跳到定义:通用CTags(同样,ALE也应该可以用于此),当CTags失败时,ripgrep是难以形容的。
您应该小心安装IDE插件,它们很容易影响VIM的性能。
与其他IDE相比的潜在好处值得注意的是,VIM允许您灵活地设置代码库。在许多IDE只在项目级别工作的地方,您可以在许多git repos上创建一个父文件夹,fzf和ripgrep非常强大,它们会消耗大量的代码库,并且在搜索时几乎不会减慢速度。使用CTAG,您可以跨回购边界建立索引。这实际上填补了sourcegraph的智能编辑器检查表中的几个不常见的点(我认为vim能够完成大多数当前IDE所做的超越这些点的所有点):
Does your jump-to-def work across repository boundaries?
Can you search over all of your code and dependencies in one place?
使用VIM的缓冲区可以让您打开100秒的缓冲区,而不会造成UI混乱或性能下降。键入
1 | nnoremap <leader>bb :buffers<cr>:b<space> |
TimPope最近有一个新的数据库dadbod插件,它提供了与微软数据库管理工作室类似的功能。
我今天在查看O.T.android ndk的东西时遇到了gvide——vim的长期用户,在eclipse中使用了eclim,但坦率地说,我的vim环境是用于编写代码,而不是开发代码。读到不同的曲折使VIM成为一个开发环境真的很有趣,而且GVIDE有一些令人信服的东西。-
http://www.crystax.net/en/gvide