gpt4 book ai didi

ruby-on-rails - 从 RubyMine 迁移到 Vim - 解释自动完成

转载 作者:行者123 更新时间:2023-12-01 00:57:00 31 4
gpt4 key购买 nike

直到上周,我一直在使用 RubyMine 进行 Rails 开发。我知道它有一个 vim 插件,但我一直在努力将我的开发迁移到 vim 和 tmux。我不想继续使用鼠标,VIM 给了我更多的灵 active 。除了下面我的第一个屏幕截图中的“解释的自动完成”功能之外,我已经找到了几乎所有我关心的功能的插件和解决方法。 RubyMine 解释整个 rails 应用程序并提供按相关性排序的建议(如您所见,它向我展示了相关类及其包含的模块的实例变量和方法)然后它显示 Object 上可用的(不太相关的)方法类(class)。当有方法签名时,它还会显示方法签名。

此外,在我的第二个屏幕截图中,您可以看到 RubyMine 如何为核心 Ruby 类提供自动完成功能。

将此与最底部的屏幕截图进行比较。我确实有完成,但没有办法找到我正在寻找的东西。我正在使用 ctagsYouCompleteMevim-railsvim-ruby ,我还尝试安装 eclim 看看它是否有所作为。

有没有我错过的插件可以增强我的自动完成功能?看起来 RubyMine 并没有做一些 super 疯狂的事情。如果 pry 在相同的“上下文”中运行,它可以给我相同的“力量”。

第一个屏幕截图(RubyMine 解释自动完成):

enter image description here

第二个屏幕截图(RubyMine 核心 Ruby 类自动完成):

enter image description here

第三个屏幕截图(vim omnifunc + ctags):

enter image description here

最佳答案

重要提示
此解决方案仅适用于 Ruby 1.9+

我在 https://github.com/zxiest/vim-ruby fork 了 'vim-ruby'并将其修改为:

  • 方法签名现在出现在完成中。
  • 我禁用了按名称排序的方法。

  • 插件和设置

    vim rails
    我正在使用 vim-rails https://github.com/tpope/vim-rails

    super 标签
    我正在使用 super 标签 https://github.com/ervandew/supertab而不是 YouCompleteMe (在我的问题中提到)虽然 YouCompleteMe super 快速且自动,但目前我的 it 和我的 vim-ruby 之间存在一些兼容性问题叉。

    vim-easytags
    我正在使用 vim-easytags https://github.com/xolox/vim-easytags

    将此添加到您的 ~/.vimrc
    :set tags=./tags;
    :let g:easytags_dynamic_files = 1

    确保 touch ./tags在您的项目目录中。

    问题 :UpdateTags -R **/*.*来自 vim,以便 easytags 生成您的标签文件。

    重新映射全能

    为了 omnicomplete要弹出,默认情况下,我们必须点击 <C-X><C-O> .我将其重新映射到 <C-Space>通过在我的 ~/.vimrc 中插入以下内容:
    inoremap <C-@> <C-x><C-o>
    我现在按 tab当我希望 supertab 完成我的代码和 Ctrl+Space当我希望omnicomplete 为我触发和显示方法签名时。肯定有更好的方法来整合它(即让 supertab 在点之后调用omnicomplete)

    这是屏幕截图!请注意,方法排序被关闭允许我的自定义 resize方法出现在顶部,签名现在出现在完成中(以及按下回车时的编辑器中!)

    enter image description here

    关于ruby-on-rails - 从 RubyMine 迁移到 Vim - 解释自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914063/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com