直到上周,我一直在使用 RubyMine 进行 Rails 开发。我知道它有一个 vim 插件,但我一直在努力将我的开发迁移到 vim 和 tmux。我不想继续使用鼠标,VIM 给了我更多的灵 active 。除了下面我的第一个屏幕截图中的“解释的自动完成”功能之外,我已经找到了几乎所有我关心的功能的插件和解决方法。 RubyMine 解释整个 rails 应用程序并提供按相关性排序的建议(如您所见,它向我展示了相关类及其包含的模块的实例变量和方法)然后它显示 Object
上可用的(不太相关的)方法类(class)。当有方法签名时,它还会显示方法签名。
此外,在我的第二个屏幕截图中,您可以看到 RubyMine 如何为核心 Ruby 类提供自动完成功能。
将此与最底部的屏幕截图进行比较。我确实有完成,但没有办法找到我正在寻找的东西。我正在使用 ctags
、 YouCompleteMe
、 vim-rails
、 vim-ruby
,我还尝试安装 eclim
看看它是否有所作为。
有没有我错过的插件可以增强我的自动完成功能?看起来 RubyMine 并没有做一些 super 疯狂的事情。如果 pry
在相同的“上下文”中运行,它可以给我相同的“力量”。
第一个屏幕截图(RubyMine 解释自动完成):
第二个屏幕截图(RubyMine 核心 Ruby 类自动完成):
第三个屏幕截图(vim omnifunc + ctags):
最佳答案
重要提示
此解决方案仅适用于 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
方法出现在顶部,签名现在出现在完成中(以及按下回车时的编辑器中!)关于ruby-on-rails - 从 RubyMine 迁移到 Vim - 解释自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914063/