ruby - 在 Emacs irb (inferior-ruby-mode) 中,如何使自动完成功能遵循 Ruby 模式缓冲区中的单词?

标签 ruby emacs autocomplete

同时setting up autocomplete in Emacs irb (inferior-ruby-mode),我遇到了一个问题,无法仅添加 Ruby 模式缓冲区作为 AC 源。我可以例如。在当前目录中添加文件

(setq ac-sources '(ac-source-files-in-current-dir))

或者我可以添加所有缓冲区(我最后使用的)

(setq ac-sources '(ac-source-words-in-all-buffer))

但我真正想要的是只添加Ruby模式缓冲区。 ^^

最佳答案

查看ac-source-words-in-same-mode-buffers...我们可以重复使用这种方法来构建我们自己的补全源,例如:

 (ac-define-source words-in-ruby-buffers
   '((init . ac-update-word-index)
     (candidates . (ac-word-candidates
                     (lambda (buffer)
                       (eq (buffer-local-value 'major-mode buffer) 'ruby-mode))))))

将为我们提供ac-source-words-in-ruby-buffers补全源代码。

附注我没有测试过,但它应该可以工作;-)

关于ruby - 在 Emacs irb (inferior-ruby-mode) 中,如何使自动完成功能遵循 Ruby 模式缓冲区中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13472163/

相关文章:

ruby-on-rails - Redis + Soulmate on heroku - 在多个模型上实现自动完成

android - 为什么自动完成搜索对话框不显示任何建议?

php - 自动完成 jQuery/PHP/MySQL 不返回结果

ruby - 只允许 Ruby 数组中的特定值之一

emacs - 在 emacs 中查找制表符

ruby-on-rails - rails 中的辅助方法问题

emacs - #[...] 在 emacs-lisp 中是什么意思?

list - 构建带有非列表尾部的列表有什么意义?

ruby - 续集 auto_validation 不检查字符串 maxlength

ruby - 我如何编写 "if a process is running for longer than n seconds, kill it"的 Resque 条件?