Questions tagged «company-mode»

公司模式是Emacs的文本完成框架。该名称代表“完成任何事情”。它使用可插入的后端和前端来检索和显示完成候选。


1
如何使公司模式在纯文本上区分大小写?
默认情况下,公司模式似乎会将每个预测都转换为小写。 例如: HelloWorldOfGoo HelloWorldOfEmacs -> Hell [Helloworldofgoo] //Company prediction [Helloworldofemacs] 对于没有特殊后端的区分大小写的编程语言,这不太实用。如何使公司模式区分大小写?

5
如何获得模糊代码完成
在Visual Studio中使用ReSharper时,可以使用模糊匹配而不是前缀匹配来自动完成符号。例如,如果我在找一个叫功能DoSomethingAmazing我可以写DoSoAm,它会尝试扩大我的查询匹配所有的符号Do,So并Am在他们的名字的地方。 另一个示例可以在下面的gif中找到。您会看到几种扩展,其中非前缀字符串被扩展为正确的符号。(忽略片段扩展,因为在此问题中我仅关注模糊匹配)。 在Vim的YouCompleteMe插件中可以看到另一个示例: 自动完成和公司模式似乎都具有前缀匹配,但是我找不到启用模糊匹配的方法。 理想情况下,该解决方案将与语言无关,并适用于我使用的任何符号完成包,但我也对特定于语言的解决方案感兴趣。我看过Helm,但还没有找到一种将其应用于代码完成的方法。 我考虑过其他选择,例如具有使用Helm缓冲区激活符号完成的键绑定,但我希望有一种使用弹出式完成来完成此操作的方法。 我也愿意对每种语言进行手动配置,因为某些语言用破折号分隔符号,而另一些语言则使用下划线或破折号,我认为这会影响匹配方式。

2
如何使yasnippet和公司更好地工作?
假设在我的emacs中,我使用"elisp"yasnippet扩展了组织模式下的lisp块。但是在我扩展它之前,首先会触发公司,这给了我一个菜单,就像"1. elisp1, 2. elisp2"没有选项"elisp"。现在,如果我tab用来扩展yasnippet,"elisp1"总是首先出现在屏幕上总是很烦人。所以我需要先删除"1",然后再扩展yasnippet片段。 因此,作为解决方案,我总是使用左箭头键先关闭公司完成菜单,但现在光标将移至"elis|p",因此再次使用右箭头键将光标移到的末尾"elisp|"并扩展代码段。 我的问题来了:我该如何tab首先绑定密钥才能触发yasnippet,但不触发公司挽救生命?

3
找出用于公司完成的后端
使用自定义company后端时,company-complete由于后端的行为不正确,最终不会返回任何补全。在这种情况下,了解使用哪个公司后端生成完成列表将很有帮助。company-complete调用后如何获取此信息?


1
让公司显示Yasnippet名称的建议
我使用公司模式和Yasnippet软件包。当我在缓冲区中键入内容时,我会从Company获得自动完成建议。 对于Yasnippet,我有一个包含摘要的目录。例如,在该目录中,我有file foo.yasnippet。 当我foo在缓冲区中键入内容并Tab按时,会弹出yasnippet的弹出菜单,我可以选择要插入的摘录(foo或foo-bar)。我想将yasnippet集成到foo公司完成中。输入时foo,我想在“公司完成”弹出窗口中查看摘要。 这可能吗?如果是这样,我怎么能做到这一点?在Vim中,您可以使用Neocomplete和VimSnippets实现。当我四处搜索时,我发现了与Elisp的链接,但是我无法确定如何应用它。 有什么建议么?


1
如何将company-dabbrev添加到“公司完成”弹出窗口?
设定: KAEL的GUI版本GNU Emacs 25.0.50.1(x86_64-w64-mingw32)of 2015-07-25 从EmacsW64编译。 ,使用MELPA的最新版本 Windows 7 x64位。 情况: 例如,我输入缓冲区foobarsentence。 然后在其下开始新行,并输入fooba,我希望foobarsentence从“公司”弹出完成窗口中得到建议。但是没有foobarsentence。 我从另一个答案中发现,我可以使用company-dabbrev来绑定,M-/。但是我不知道如何将建议“反馈” company-dabbrev到弹出窗口中。我做了一个截屏gif,以使我的问题更清楚。 如您所见,M-/致电company-dabbrev。但我希望在公司完成弹出窗口中看到建议的内容。令我惊讶的是这不是默认设置。 有什么建议可以将建议从“反馈” company-dabbrev到公司弹出窗口?

3
如何通过Company获得C / C ++上下文相关的完成功能?
Semantic 似乎能够做到这一点,但是我无法按预期实现它。例如,如果我#include "Type.h"和声明Type t,使用semantic-complete-analyze-inlinewhen point was after t.始终给我错误 找不到“类型t”的类型 而不是向我提供的所有公共(或其他适当方式)成员t。 如何获得我在这里寻找的结果?理想情况下,我如何使用语义可能提供的任何东西作为公司的后端?

2
使用公司模式完成文件名
我在init.el中使用以下命令启用了公司: (require 'company) (add-hook 'after-init-hook 'global-company-mode) 但是,尽管源中有一些提供程序,但网站没有提到它的支持,但我没有完成文件名。 我开始输入/ home / emmanuel ...,虽然我希望完成功能会开始提供选项,但什么也没发生? 另外,公司模式如何自动检测相对路径的完成,我想我读到了它的支持,但是我不确定如果没有开头的“ /”作为提示,它将如何检测到它?


2
跳转到公司模式的文档缓冲区
我最近从切换到auto-complete-mode,company-mode并且很开心。最近,我不得不编写一些Emacs Lisp代码。我开始输入函数,显示完成候选,然后按F1,文档在另一个缓冲区中打开。我想跳到文档缓冲区,但是,当我键入C-x o它时,它就关闭了。有什么提示吗?

1
首次加载主模式时如何自动运行劣质进程?
假设我们正在与公司合作使用Python(或Matlab)。没有劣质的公司信息, Completion needs an inferior Python process running 但是,自动运行劣等流程的明显解决方案 (add-hook 'python-mode 'run-python) 每次我打开.py文件时都会运行一个新的python进程(对于Matlab来说,这会变得更加昂贵) 是否存在仅在运行主要模式时才运行的钩子?还是有一种方法可以检测python / matlab下级进程是否已经在运行?还是有另一种方法来解决以主要模式自动运行劣质进程但仅运行一次的问题?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.