[英]How to use vi/vim/gvim seamlessly with visual studio 2008?
[英]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 补丁,它允许 Vim 在 Visual Studio 中用作编辑器:
首先,为 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
提供特定于文件类型的上下文相关CTRL-X CTRL-O
. Omni-completion 需要特定文件类型的插件,Golang 的vim-go包支持它。
格式化:
太棒了:
更好的图形用户界面:
配色方案:
无需自己进行设置和配置,您可以使用以下项目来快速使用类似 Vim 的 IDE。 下面的两个项目包括我上面提到的许多插件:
我建议你不要使用它们。 如果您花时间自己配置 vim 并在交错的过程中安装插件以很好地学习每个插件,您将学到更多。
VimAwesome是浏览 Vim 插件并找到有用和流行插件的好地方。
除了这些脚本之外,您可能还想查看以下 Vim 的一些补丁。 我没有使用过它们,所以不确定质量,但它们中的大多数看起来很有前途。 您可以在此处查看所有补丁,使 vim 更像 IDE 的补丁是:
安装这些脚本和补丁后,您应该在 Vim 中拥有与 Visual Studio 或 Eclipse 非常接近的功能。
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 的性能。
值得注意的是 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 有一些引人注目的东西——
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.