Як вже зазначав @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)))))