VIM 中更好的自动完成功能

2024-01-04

All,

我使用 vim 已经有一段时间了,并且喜欢它的一切 - 我真正怀念 RubyMine 这样的 IDE 中只有一件事,那就是高级自动完成功能。

作为参考,这是我的标准 VIM 设置:https://github.com/wrwright/.vim https://github.com/wrwright/.vim

我尝试过使用omnicomplete + supertab 的ctags,我错过的一个主要元素是能够调出上下文相关的属性/常量/方法列表。例如,当我学习 RubyMotion 时,我希望有人帮助我记住 iOS SDK 常量/属性/方法,但我的 VIM 自动完成功能会停止建议类名。或者,如果它确实建议方法/属性,它会列出大量方法/属性甚至不适用于我正在使用的类。

我希望(简单的例子)能够输入 UIColor.bl 并使用 UIColor.blueColor 自动完成(或者建议是否有多个以“bl”开头的选项,这些选项是 UIColor 的属性。

RubyMine 在这方面做得很好,如果我能让 VIM 具有同样智能的自动完成功能,那就太好了(并且在学习 RubyMotion/iOS 开发时是一个巨大的福音。

我还尝试过 SnipMate(甚至还有 RubyMotion 定制的变体,位于https://github.com/rcyrus/snipmate-snippets-rubymotion https://github.com/rcyrus/snipmate-snippets-rubymotion),但这似乎也没有提供我正在寻找的功能。


对库存 Vim 的omnicomplete 比较满意 +vim-ruby https://github.com/vim-ruby/vim-ruby and vim-rails https://github.com/tpope/vim-rails当然,其完成能力与 NetBeans 相当,但具有 Vim 的所有功能,并且资源要求低得多。

从我的 .vimrc 中关于完成选项:

autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1 
autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1
autocmd FileType ruby,eruby let g:rubycomplete_rails = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VIM 中更好的自动完成功能 的相关文章

  • 可以在哈希每个循环中访问索引吗?

    我可能遗漏了一些明显的东西 但是有没有办法访问哈希每个循环内迭代的索引 计数 hash three gt one four gt two one gt three hash each key value any way to know wh
  • Ruby 的 OpenSSL::Random 种子是否足够?

    我对 Ruby 知之甚少 所以如果答案很明显 请原谅我 我注意到在http www ruby doc org stdlib 1 9 3 libdoc securerandom rdoc SecureRandom html http www
  • 如何检查rails上传的文件类型?

    我如何查看即将到来的文件类型 例如 csv 或 xls 请给个代码 我得到文件是这样的 aut name uploaded io original filename File open Rails root join public uplo
  • 如何从 Ruby 检查具有特定 pid 的进程是否正在运行?

    如果有多种方法 请列出 我只知道一个 但我想知道是否有一种更干净的 Ruby 方式 之间的区别Process getpgid and Process kill方法似乎是当 pid 存在但由另一个用户拥有时发生的情况 Process getp
  • 标记(lex?parse?)正则表达式

    使用 Ruby 我想获取一个 Regexp 对象 或表示有效正则表达式的字符串 您的选择 并将其标记化 以便我可以操作某些部分 具体来说 我想采用这样的正则表达式 字符串 regex var w parts foo bar 并创建一个替换字
  • 在新的 RHEL6 服务器上安装 ruby​​-filemagic gem 时遇到困难

    它似乎正在寻找 libmagic so 1 文件 我有那个文件 它位于 usr lib64 中 我没有以 root 用户身份运行此安装 我也在使用 rvm 和 Bundler 这是我的 bundle 命令的结果 当它到达 Gemfile 中
  • BigDecimal 无法强制转换为 BigDecimal

    这应该很简单 但它却爆炸了 有任何想法吗 d BigDecimal new 2 0 YAML load a gt d to yaml TypeError BigDecimal can t be coerced into BigDecimal
  • ruby on Rails,会话过期通知

    我正在使用 ruby 1 9 3 和 Rails 3 2 我的实际会话处理如下所示 会话助手 def sign in user cookies remember token value user remember token expires
  • 无需别名的 Ruby YAML 编写

    我正在从 ruby 将数据写入 yaml 文件 并且经常在该文件上添加别名 像 id001 somekey somevalue id001 就我而言 我使用 yaml 文件来aid可读性并将名称添加到文件中的值 因为现有数据只是 没有键的分
  • Capybara 的 has_selector 有哪些选项?

    我在 RSpec 中遇到此错误 有没有任何文档have selector解释了选项哈希中的每个键以及它到底有什么作用 invalid keys content should be one of text visible between co
  • 在任意时间范围内找到最佳日/月/年间隔的算法?

    如果您有时间表 请说 March 19 2009 July 15 2011 是否有一种算法可以将该时间范围分解为 March 19 2009 March 31 2009 complete days April 1 2009 December
  • 使用 YAML.load 解析 json 安全吗?

    我使用的是红宝石2 1 0 我有一个 json 文件 例如 测试 json item apple 1 banana 2 使用 YAML load 加载此文件是否安全 YAML load File read test json 我正在尝试加载
  • 什么是 - 获取的是一个目录 - 错误消息

    我收到这个奇怪的错误 Users gideon Documents ca ruby rubytactoe lib player rb 13 in gets Is a directory spec Errno EISDIR 玩家规格 rb r
  • 如何成功使用 VIM 作为 Code::Blocks 的外部编辑器?

    我真的很喜欢 Code Blocks 的构建系统和单步调试能力 也就是说 我真的很喜欢使用 gcc gdb 的包装器 而不是从 Makefile 或命令行使用它们 问题是 多年来使用 VIM 使我的大脑受到了严重损伤 或者有些人可能会说被宠
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • 如何从 vim 命令行交互运行 vim 脚本?

    有没有办法从以下位置运行这些脚本 命令行只需敲几下键 在过去的几个月里 我构建了一系列充满 vim 命令的文件 为我的项目自动生成样板代码 它让我工作得更快 但是 我知道如何运行这些脚本的唯一方法是将它们分配给 vimrc 我只能重新映射这
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • 为什么我可以像调用实例方法一样调用类方法?

    我正在查看这个例子 class SQLObject def self columns return columns if columns columns DBConnection execute2 lt lt SQL first SELEC
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 用于验证目的的动态查找方法

    我正在使用 Ruby on Rails 3 0 7 我想在运行时查找一些记录以进行验证 但为该查找方法传递 设置一个值 也就是说 在我的班级中 我有以下内容 class Group lt lt ActiveRecord Base valid

随机推荐

  • typeahead.js 预取不起作用

    我无法让 typeahead js 中的预取函数工作 但它对于本地数据工作得很好 我首先尝试链接到返回 json 对象或列表的 servlet 但过了一会儿我放弃了 并开始检查提供的示例 因此 他们的示例链接到的页面如下所示 http tw
  • 每 10 秒调用一个函数 Angular2

    我正在尝试创建一个Timer这称为API call每 10 秒 我使用setTimeOut但问题是 它变成了无限循环 即使我推送到另一个页面 它也会继续加入 if 条件 例子 我在启动 10 秒 API 调用的方法上调用此方法 setTim
  • 将字典从 Swift 发送到 PHP

    如何将 Swift 生成的字典作为 PHP URL 中的参数发布 具体来说 任务是更新托管数据库上的许多字段 我不是将每个字段的新值定义为单独的参数 而是希望传递一个字典 其中键是字段名称 值是新值 该数据已经作为Dictionary
  • c++:程序设置 - boost.PropertyTree 还是 boost.program_options?

    我正在寻找一种在 C 中存储程序设置或选项或配置的解决方案 这些可能是在 GUI 中公开的设置 需要在代码运行之间保存 在我的搜索中我遇到了boost PropertyTree http www boost org doc libs 1 4
  • Matlab 中的矩阵到向量转换

    我有一个 MxN 矩阵 想转换为向量 MNx1 其中矩阵中行的所有元素作为向量的元素 我尝试使用reshape但我没有成功 这是小代码片段和预期结果 S 0 1 1 0 1 1 1 1 预期结果 S prime 0 1 1 0 1 1 1
  • 是否有使用 sun.jdbc.odbc.JdbcOdbcDriver 的替代方法? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我最近将我们工作中的一个旧应用程序从 Java 1 5 迁移到 1 6 我注意到在构建过程中 我现在收
  • 如何使命名路由出口与 loadChildren 一起工作?

    我创建了两个关于路由的 loadChildren 和出口导航问题的插件 由于某种原因 加载的子模块中具有空的基本路径不适用于出口导航 In this https plnkr co edit ps0ZiD3mHTte227Ws69T p pr
  • Java HashMap 检测冲突

    有没有办法检测 Java Hash map 中的冲突 任何人都可以指出某些可能发生大量碰撞的情况吗 当然 如果你重写一个对象的哈希码并简单地返回一个常量值 那么肯定会发生冲突 我不是在谈论这个 我想知道除了前面提到的之外 在什么情况下会发生
  • WebBrowser 控件 - 安装 IE 11 后页面呈现错误

    我对 Winforms NET 类 WebBrowser 有问题安装后Internet Explorer 11 预览版 当我调用我的网页时 它看起来像是禁用了 javascript If your WebBrowser基于应用程序和您的网页
  • 将文件上传到 Azure 存储会导致错误:此流不支持超时

    我有一个表单 其中包含上传到 Azure 存储的文件 这是调用 ToStream 方法的地方 Image img Image FromStream file InputStream true true if img Height heigh
  • docker-compose:定义绑定挂载和托管挂载的挂载

    我正在使用 docker compose 来定义我的服务 在docker中 docker卷有两个概念 首先是关于bind mount 挂载在主机存储上 docker run d name web app v HOST location co
  • jQuery UI datepicker 将焦点放在输入上,而无需在 IE 中再次加载日历?

    我知道如果用鼠标选择日期 jQuery UI 日期选择器会失去焦点 我希望能够将焦点集中在该输入字段上 所以我做了这样的事情 patientDob live click function patientDob datepicker onSe
  • 在numpy数组中查找连续的

    如何找到连续的数量1以下 numpy 数组的每一行中的 s 或任何其他值 我需要一个纯 numpy 解决方案 array 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 2 0 0 1 1 1 0 0 0 4 1 0
  • Google OR 工具:如何评估复杂或多级布尔约束

    Set up 我使用 google OR 工具作为约束编程求解器 from ortools sat python import cp model 我定义了以下 BoolVars model cp model CpModel a model
  • IntelliJ 和 JSP/JSTL 无法解析 tomcat7 中 JSTL 的 taglib [重复]

    这个问题在这里已经有答案了 首先 我的 JSTl 代码可以在我的服务器上运行 因为我在 tomcat7 的 Lib 文件夹中有正确的 Jar 文件 这实际上只是一个 IDEA 问题 我的问题归结为我将相同的 jar 文件放在 Intelli
  • 隐藏盒子阴影的部分

    免责声明 我已经看到以下问题 尽管它们的情况非常相似 但它们的解决方案并不适用于我 在除一侧以外的所有面上创建 CSS3 框阴影 https stackoverflow com questions 1429605 css3 box shad
  • 如何通过 Terraform 将 Iceberg 表部署到 AWS

    尝试确定将一些 Iceberg 表部署到我们的 AWS 环境中的最佳方法 有人通过 Terraform 取得成功吗 我有以下配置 但当我查询我创建的表时 Athena 抱怨缺少元数据位置 或者将永远旋转 如果有更好的方法可以自动化部署 请告
  • 如何知道 uitableview 是否有选定的单元格

    我正在开发一个应用程序 有时我有几个 uitableview 我想知道委托方法之外的操作 例如表视图是否有选定的单元格以及是哪个单元格 我尝试使用 NSIndexPath indexPathForSelectedRow但它不起作用 因为如果
  • 通过选项选择更新 SVG

    我正在尝试获取 SVG 中的文本元素以通过选项更改进行更新 搜索后 我已经能够到达 在控制台中 在页面初始加载期间以及选项更改时看到选项更改的位置 但我未能成功更改数字 任何帮助 将不胜感激
  • VIM 中更好的自动完成功能

    All 我使用 vim 已经有一段时间了 并且喜欢它的一切 我真正怀念 RubyMine 这样的 IDE 中只有一件事 那就是高级自动完成功能 作为参考 这是我的标准 VIM 设置 https github com wrwright vim