我被迫在工作中使用VS2008作为我的大部分项目,但每当奇数文本文件需要编辑时我都会使用Vim。
现在我知道有些插件可以使VIM像IDE一样工作,所以我想知道是否有人真的将它用作IDE?
编辑:
对于那些认为您代表群众说Vim不应该用作IDE的人,请考虑IDE功能是official feature request list on vim.org上的头号功能请求。
答案 0 :(得分:47)
Vim是一款令人惊叹的软件,但由于它的年龄相当混乱。 Vi
于1976年发布,Vim
于1991年发布。例如,Vim提供了很多不同的文本完成方式,从简单的关键字到“omni”完成系统。最重要的是,一些插件选择使用内置功能,而其他插件只是批量替换它。希望以下建议可以帮助您入门。
您可能想要为Vim尝试这个新的补丁,它允许在Visual Studio中使用Vim作为编辑器:
首先,为Vim安装Vundle插件管理器插件!它运行良好,使Vim插件易于管理。处理安装,更新和删除。
例如,您的.vimrc
现在只包含:
" === Plugins! ===
Plugin 'junegunn/fzf'
Plugin 'scrooloose/nerdtree'
Plugin 'w0rp/ale'
...
PluginUpdate
命令将安装它们或更新它们。
以下vim脚本为Vim提供了更多IDE感觉。请记住,Vim内置了大量功能,因此在加载20个插件之前需要花时间学习(这是一个持续的旅程)。
对我来说最具影响力的插件是fzf和ALE。您需要安装fzf和ripgrep。
<强>导航强>
文字完成情况:
我个人认为代码完成太多,只依赖于Vim内置的CTRL-N
文本完成功能,但请记住CTRL-N
! Vim的内置完成系统超出了这个范围,具有不同的完成模式,例如文件名完成CTRL-X CTRL-F
或“omni-completion”,它试图通过CTRL-X CTRL-O
提供文件类型特定的上下文相关完成。 Omni-completion需要特定于文件类型的插件,Golang的vim-go包支持它。
<强>格式:强>
太棒了:
更好的GUI:
配色方案:
您可以使用以下项目快速使用像Vim这样的IDE,而不是自己完成设置和配置。下面的两个项目包括我上面提到的许多插件:
我建议你不要使用它们。如果你花时间自己配置vim并在交错的过程中安装插件来学习每一个插件,你会学到更多。
VimAwesome可以成为浏览Vim插件并找到有用且受欢迎的插件的好地方。
除了这些脚本之外,您可能还想查看Vim的以下一些补丁。我没有使用它们所以不确定质量,但大多数看起来很有前景。您可以查看所有补丁here,那些使vim更像IDE的补丁:
安装了这些脚本和补丁后,你应该在Vim中使用与Visual Studio或Eclipse相近的功能。
答案 1 :(得分:15)
您也可以反过来使用名为viemu的插件。这个在VS IDE中为您提供vi-mode,这使同事更容易在您的系统上共同驱动。
答案 2 :(得分:7)
答案 3 :(得分:6)
我不是试图对这种反应感到煽动,但我想为你省一些头痛。这是我给#vim中提出类似问题的所有人的答案。
Vim不是IDE。这是一个编辑。它从来没有打算成为一个IDE,任何使它符合这一点的尝试只会给你带来问题。有些插件试图为Vim提供类似IDE的感觉,但这些很糟糕。
另一方面,我会推荐一些插件来帮助您从Vim获得一些扩展功能。这些可能适合您的需求。答案 4 :(得分:6)
如果您使用Linux,请尝试Pida。您可以将Vim或Emacs嵌入其中。许多集成,如文件浏览器,项目结构和控制台,使Vim看起来像Eclipse。恕我直言,这是一种将Vim用作IDE的简单方法。
答案 5 :(得分:3)
VIM作为IDE提供对C和C ++的一流支持。你甚至有一个带有clewn和gdb的可视化调试器。其他语言,你将不得不做一些调整和摆弄,结果可能达不到你想要的。值得尝试一个小时,看看它如何。
我得到的印象是,emacs可以更好地用作更多语言的IDE。
答案 6 :(得分:2)
在http://code.google.com/p/exvim中尝试exVim 该项目使vim成为多语言开发的IDE。
答案 7 :(得分:1)
答案 8 :(得分:1)
我单独使用Vim - 它有一些基本的能力通过^ X自动完成各种选项(^ P表示关键字,^ O表示omnicomplete(适用于在Web文件中切换HTML,CSS等)。
它还能够通过以下方式启动命令:!(编译器或其他命令)。
与基本开发相当简单,无痛的集成,无需工作空间或类似工具 - 如果需要,还可以进行文件设置模型。
编辑:就模块而言,通常有模块在Vim环境内或旁边嵌入相关的脚本语言 - 但我不知道类似的.NET框架模块。
答案 9 :(得分:0)
我看着O.T.今天遇到了gvide。 Android NDK的东西 - vim的长期用户,在eclipse中使用了eclim,但坦率地说我的vim环境是用于编写代码而不是开发代码。阅读不同的曲目以使vim成为一个开发环境非常有趣,并且gvide有一些引人注目的东西 -
答案 10 :(得分:0)
这些注释还完全取决于编写年份。因此,这就是我对于将Vim作为2018年的IDE的想法。
Language Server Protocol的重要性不断提高,Sourcegraph已通过其master plan进行了普及。
这是ALE (Asynchronous Linting Engine)之所以如此重要的主要原因,因为Go-to-definition, code completion and hover information实现了LSP。因此它也提供vim-tim。我只是刚刚开始将它用于棉绒并且没有深入研究其他功能,但是我认为它具有提供IDE期望的许多功能的巨大希望。
但是,Tim Pope + FZF + Ripgrep + ALE的几乎所有通用内容都将为您提供功能强大的编辑器。
坦率地说,“ Everything Tim Pope”编辑器是Vim IDE最好的起点之一(我什至为此创建了David Terei's excellent answer)。
我唯一与Obsession有所不同的地方:
在安装IDE插件时应该小心,它们很容易影响Vim的性能。
值得注意的是,Vim允许您灵活地设置代码库。在许多IDE仅在项目级别上工作的地方,您可以在许多Git存储库中创建一个父文件夹,FZF和Ripgrep如此强大,以至于它们会消耗大量的代码库,并且在它们之间进行搜索时几乎不会减慢速度。使用Ctags,您可以跨回购边界建立索引。实际上,这填补了taken from another answer中几个不常见的问题(我认为Vim能够满足大多数当前IDE所能完成的所有工作):
您的跨定义工作是否跨越存储库边界?
您可以在一个地方搜索所有代码和依赖项吗?
使用Vim的缓冲区,可以打开100个缓冲区,而不会造成UI混乱或性能下降。键入:b some-buffer-text
,然后键入 Tab ,可以轻松自动完成缓冲区名称。我还使用以下行dadbod,该行允许列出所有缓冲区并打印buffer命令,以使您可以通过其编号快速切换到另一个:
nnoremap <leader>bb :buffers<cr>:b<space>
Tim Pope有一个新颖的最新数据库{{3}}插件,可为您提供Microsoft的Database Management Studio中类似的功能。