正如@Jesse已经指出的那样,您想要的是company-files
后端。有几种不同的使用方式:
绑定密钥以company-files
直接呼叫。
使用命令company-begin-backend
。这会提示您使用后端,然后提供完成候选人。
使用company-other-backend
通过后端的列表,旋转(见下项)。这可以用于触发完成,也可以在触发公司模式以切换到另一组完成候选后使用。您可能要在公司地图中分配键绑定,例如(define-key company-active-map (kbd "C-e") #'company-other-backend)
配置变量company-backends
。公司模式遍历此列表,以便找到接受当前前缀(即,点之前的文本)的后端。列表中完全可能有一个接受当前前缀但不提供任何完成候选的后端,这时公司模式将不会自动完成任何事情。您可以自定义列表,以便以符合您需求的方式订购后端。
修改的几个例子company-backends
:
如果您只想完成文件名,则可以将其作为唯一的后端:
(setq company-backends '(company-files))
这似乎不太可能,因此最好先放置最常用的后端,然后再使用前面提到的选项之一切换后端或在需要其他名称时按名称调用一个。
您还可以配置一个“组”后端,该后端创建一组合并的完成候选人。试试这个,例如:
(setq company-backends '((company-capf company-dabbrev-code company-files)))
这指定了一个后端,该后端将来自其他三个后端的候选者合并在一起。它将为您提供点完成,dabbrev和文件系统的结果。
您可以使用模式挂钩为不同的主要模式指定一组不同的后端。例如:
(add-hook 'org-mode-hook
(lambda ()
(setq-local company-backends '((company-files company-dabbrev)))))
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(setq-local company-backends '((company-capf company-dabbrev-code)))))