在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模式缓冲区。^^
在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
补全源。
PS我没有测试过,但它应该可以工作;-)