Come già sottolineato da @Jesse, quello che vuoi qui è il company-files
backend. Esistono diversi modi per utilizzarlo:
Associare un tasto per chiamare company-files
direttamente.
Usa il comando company-begin-backend
. Ciò richiede l'utilizzo del back-end, quindi offre candidati per il completamento.
Utilizzare company-other-backend
per ruotare l'elenco dei backend (vedere l'elemento successivo). Può essere utilizzato per attivare il completamento o può essere utilizzato dopo l'attivazione della modalità società per passare a un diverso set di candidati per il completamento. È possibile che si desideri assegnare un'associazione chiave nella mappa aziendale, ad es(define-key company-active-map (kbd "C-e") #'company-other-backend)
Configura la variabile company-backends
. La modalità Azienda attraversa questo elenco per trovare un backend che accetta il prefisso corrente (ovvero il testo prima del punto). È del tutto possibile avere un backend nell'elenco che accetta il prefisso corrente ma non offre candidati per il completamento, a quel punto la modalità azienda non completerà automaticamente nulla. È possibile personalizzare l'elenco per ordinare i backend in modo tale da soddisfare le proprie esigenze.
Alcuni esempi di modifica company-backends
:
Se hai sempre desiderato completare i nomi dei file, potresti fare in modo che il tuo unico backend:
(setq company-backends '(company-files))
Sembra improbabile, quindi è meglio mettere prima il backend più comunemente usato e quindi utilizzare una delle opzioni menzionate in precedenza per cambiare backend o invocarne uno per nome quando è necessario qualcos'altro.
È inoltre possibile configurare un back-end di 'gruppo' che crea un insieme unito di candidati per il completamento. Prova questo, ad esempio:
(setq company-backends '((company-capf company-dabbrev-code company-files)))
Questo specifica un singolo backend che unisce i candidati di altri tre backend. Ti darà risultati da completamento a punto, dabbrev e dal file system.
È possibile utilizzare gli hook di modalità per specificare un diverso set di backend per diverse modalità principali. Per esempio:
(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)))))