繁体   English   中英

使用 Vi、Vim 或 GVim 作为 IDE

[英]Using Vi, Vim, or GVim as an IDE

我在工作中的大部分项目都被迫使用 VS2008,但是每当需要编辑奇怪的文本文件时,我都会使用 Vim。

现在我知道有一些插件可以让 VIM 像 IDE 一样工作,所以我想知道是否有人真的将它用作 IDE?

编辑:

对于那些认为自己代表大众说 Vim 不应用作 IDE 的人,请考虑到 IDE 功能是vim.org官方功能请求列表中的第一大功能请求

Vim 是一款了不起的软件,但由于年代久远,它也相当混乱。 Vi是发布于1976年, Vim于1991年发布例如,Vim提供很多不同的方式做文字完成,从简单的关键字到它的“全方位”完成系统。 最重要的是,一些插件选择使用内置功能,而其他插件只是批发替换它。 希望以下建议可以帮助您入门。

带有 Vim 的 IDE

你可能想试试这个新的 Vim 补丁,它允许 Vim 在 Visual Studio 中用作编辑器:

文德尔

首先,为 Vim 安装Vundle插件管理器插件! 它工作得很好,使管理 Vim 插件变得容易。 处理安装、更新和删除。

例如,你的.vimrc现在只包含:

" === Plugins! ===
Plugin 'junegunn/fzf'
Plugin 'scrooloose/nerdtree'
Plugin 'w0rp/ale'
...

PluginUpdate命令将安装或更新它们。

Vim-IDE 的插件

下面的 vim 脚本给 Vim 带来了更多的 IDE 感觉。 请记住,Vim 内置了大量功能,因此在加载 20 个插件之前花点时间学习这些功能(这是一个持续的过程)。

对我来说影响最大的插件是fzfALE 您需要安装fzfripgrep

导航:

  • FZF - 最喜欢的插件,很棒的文件系统导航和文本搜索
  • 书呆子树- 文件系统导航
  • Command-T - 按文件名搜索项目以打开,建议改为 FZF
  • CtrlP - Command-T、模糊文件和缓冲区搜索的替代方法。 通常较慢,但不需要编译
  • 标签栏- 按功能进行代码导航
  • 书签- vim 的书签(我自己的插件 :))

文本完成:

我个人觉得代码补全太多了,只依赖 Vim 的内置CTRL-N文本补全功能,由你决定,但请记住CTRL-N Vim 的内置补全系统超出了这个范围,具有不同的补全模式,例如使用CTRL-X CTRL-F或“omni-completion”的文件名补全,它试图通过CTRL-X CTRL-O提供特定于文件类型的上下文相关CTRL-X CTRL-O . Omni-completion 需要特定文件类型的插件,Golang 的vim-go包支持它。

格式化:

  • 表格- 轻松对齐文本
  • vim-surround - 快速包围一些文本(即括号、标签...)

太棒了:

  • ALE - 对多种语言进行实时语法检查,支持 Vim 8 的新功能,例如异步作业,以确保它在运行时不会冻结 Vim。
  • 逃犯- vim 中的 Git,差异,责备......等
  • gitgutter - 与 git 提交版本的文件的实时差异
  • YankRing - 轻松访问以前复制或删除的文本对象

更好的图形用户界面:

  • 航空公司- 更容易阅读状态行和更多有用的信息
  • Gundo - 将 vim 撤消历史可视化为一棵树(我最喜欢的,请确保您在 Vim 中打开了持久撤消)

配色方案:

  • 曝光- 很棒的配色方案

Vim 发行版

无需自己进行设置和配置,您可以使用以下项目来快速使用类似 Vim 的 IDE。 下面的两个项目包括我上面提到的许多插件:

我建议你不要使用它们。 如果您花时间自己配置 vim 并在交错的过程中安装插件以很好地学习每个插件,您将学到更多。

Vim 插件指南

VimAwesome是浏览 Vim 插件并找到有用和流行插件的好地方。

Vim 补丁

除了这些脚本之外,您可能还想查看以下 Vim 的一些补丁。 我没有使用过它们,所以不确定质量,但它们中的大多数看起来很有前途。 您可以在此处查看所有补丁,使 vim 更像 IDE 的补丁是:

  • 代码检查- 即时代码检查(注意:现在Syntastic是更好的选择)。
  • Clewn - 允许使用 GDB 在 Vim 中调试和单步调试代码。

安装这些脚本和补丁后,您应该在 Vim 中拥有与 Visual Studio 或 Eclipse 非常接近的功能。

您也可以反过来使用名为viemu的插件。 这在 VS IDE 中为您提供了 vi 模式,这使同事可以更轻松地在您的系统上共同驱动。

我不是想用这种反应来煽动,但我想让你免于头疼。 这是我给所有在#vim 中提出类似问题的人的相同答案。

Vim 不是 IDE。 这是一个编辑器。 它从来没有打算成为一个 IDE,任何试图让它符合这一点的尝试只会给你带来问题。 有一些插件试图为 Vim 提供类似 IDE 的感觉,但这些插件很糟糕。

另一方面,我确实推荐了一些插件,它们将帮助您从 Vim 获得一些扩展功能。 这些可能适合您的需求。

  • taglist - 非常适合按功能/方法/类导航您的代码
  • NERDTree - 一个很棒的文件系统导航插件

Taglist 是一个很棒的插件——没有它不要离开家。

您还可以设置选项卡完成

如果您的语言受支持, Omnicompletion是一件很棒的事情。

VIM 技巧 1439有 IDE 化技巧的综述。

如果您使用 Linux,请尝试Pida 您可以将 Vim 或 Emacs 嵌入其中。 许多集成,如文件浏览器、项目结构和控制台,使 Vim 看起来像 Eclipse。 恕我直言,这是将 Vim 用作 IDE 的一种简单方法。

VIM 作为 IDE 对 C 和 C++ 提供一流的支持。 你甚至有一个带有 clewn 和 gdb 的可视化调试器。 其他语言,您将不得不进行一些调整和摆弄,结果可能无法达到您想要的效果。 值得尝试一个小时,看看效果如何。

我的印象是,emacs 作为适用于更多语言的 IDE 做得更好。

http://code.google.com/p/exvim 中尝试 exVim 这个项目使 vim 作为多语言开发的 IDE。

我有时会在Kate 中使用 Vim 作为 IDE,否则我会在 Vim 中打开几个选项卡,而这些选项卡很难更改。

否则,我坚持使用普通的 Vim。

KDE for Windows将允许您在 Windows 中安装 Kate。

我单独使用 Vim - 它具有通过 ^X 和各种选项自动完成的一些基本能力(^P 表示关键字,^O 表示全能(适合在 Web 文件中的 HTML、CSS 等之间切换)。

它还能够通过 :!(编译器或其他命令)启动命令。

与基本开发相当简单、无痛的集成,不需要工作区或类似的东西——如果需要的话,还有用于文件设置的模式。

编辑:就模块而言,通常有模块可以在 Vim 环境内部或旁边嵌入相关脚本语言 - 但是,我不知道类似的 .NET 框架模块。

此外,这些评论非常依赖于他们的写作年份。 以上是我在 2018 年对 Vim 作为 IDE 的想法。

语言服务器协议的重要性越来越大, Sourcegraph已经通过他们的总体规划推广了它。

这是ALE(异步 Linting 引擎)如此重要的主要原因,因为它实现了 LSP。 所以它还提供了Go-to-definition、代码完成和悬停信息 我刚刚开始将它用于 linting,我还没有深入研究其他功能,但我认为它具有提供 IDE 所期望的许多功能的巨大前景。

但是几乎所有来自 Tim Pope + FZF + Ripgrep + ALE 的通用工具都会为您提供一个非常强大的编辑器。

坦率地说,“Everything Tim Pope”编辑器是 Vim IDE 的最佳起点之一(我什为此创建了vim-tim )。

我唯一与David Terei 的出色回答略有不同的地方:

你应该小心安装 IDE 插件,它们很容易影响 Vim 的性能。

与其他 IDE 相比的潜在优势

值得注意的是 Vim 允许您设置代码库的灵活性。 许多 IDE 仅在项目级别工作,您可以在许多 Git 存储库中创建父文件夹,FZF 和 Ripgrep 非常强大,它们将消耗大量代码库并且在搜索它们时几乎不会减慢速度。 使用 Ctags,您可以跨存储库边界建立索引。 这实际上填补了Sourcegraph 智能编辑器清单中的几个不常见点(我认为 Vim 能够满足大多数当前 IDE 所做的所有点):

  • 您的跳转到定义是否跨存储库边界工作?

  • 您能否在一处搜索所有代码和依赖项?

使用 Vim 的缓冲区允许您打开 100 个缓冲区,而不会造成 UI 混乱或性能下降。 键入:b some-buffer-text然后Tab允许您轻松地自动完成缓冲区名称。 我还使用来自另一个答案的以下行它允许列出所有缓冲区并打印缓冲区命令,以便您可以通过其编号快速切换到另一个:

nnoremap <leader>bb :buffers<cr>:b<space>

Tim Pope 最近有一个新颖的数据库dadbod插件,它为您提供了与 Microsoft 的 Database Management Studio 类似的功能。

我今天在看 OT Android NDK 的东西时遇到了 gvide——vim 的长期用户,在 eclipse 中使用过 eclim,但坦率地说,我的 vim 环境是用于编写代码,而不是开发代码。 关于使 vim 成为开发环境的不同曲折的阅读真的很有趣,而 gvide 有一些引人注目的东西——

http://www.crystax.net/en/gvide

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM