Như @Jlie đã chỉ ra, điều bạn muốn ở đây là phần company-files
phụ trợ. Có một số cách khác nhau để sử dụng nó:
Ràng buộc một phím để gọi company-files
trực tiếp.
Sử dụng lệnh company-begin-backend
. Điều này nhắc bạn cho phần phụ trợ sử dụng, sau đó cung cấp các ứng cử viên hoàn thành.
Sử dụng company-other-backend
để xoay qua danh sách các phụ trợ (xem mục tiếp theo). Điều này có thể được sử dụng để kích hoạt hoàn thành hoặc nó có thể được sử dụng sau khi chế độ công ty đã được kích hoạt để chuyển sang một nhóm ứng cử viên hoàn thành khác. Bạn có thể muốn chỉ định một ràng buộc chính trong bản đồ công ty, vd(define-key company-active-map (kbd "C-e") #'company-other-backend)
Cấu hình biến company-backends
. Chế độ công ty đi qua danh sách này để tìm một phụ trợ chấp nhận tiền tố hiện tại (tức là văn bản trước điểm). Hoàn toàn có thể có một phụ trợ trong danh sách chấp nhận tiền tố hiện tại nhưng không cung cấp bất kỳ ứng cử viên hoàn thành nào, tại thời điểm đó chế độ công ty sẽ không tự động hoàn thành bất cứ điều gì. Bạn có thể tùy chỉnh danh sách để đặt hàng phụ trợ theo cách đáp ứng nhu cầu của bạn.
Một vài ví dụ về sửa đổi company-backends
:
Nếu bạn chỉ muốn hoàn thành tên tệp, bạn có thể tạo phần phụ trợ duy nhất của mình:
(setq company-backends '(company-files))
Điều đó dường như là không thể, vì vậy tốt hơn hết là bạn nên đặt phần phụ trợ được sử dụng phổ biến nhất của mình lên trước và sau đó sử dụng một trong các tùy chọn được đề cập trước đó để chuyển đổi phần phụ trợ hoặc gọi từng tên khi bạn cần thứ khác.
Bạn cũng có thể định cấu hình phụ trợ 'nhóm' để tạo một tập hợp các ứng cử viên hoàn thành. Hãy thử điều này, ví dụ:
(setq company-backends '((company-capf company-dabbrev-code company-files)))
Điều này chỉ định một phụ trợ duy nhất hợp nhất các ứng cử viên từ ba phụ trợ khác. Nó sẽ cung cấp cho bạn kết quả từ hoàn thành tại điểm, dabenamev và hệ thống tệp.
Bạn có thể sử dụng móc chế độ để chỉ định một bộ phụ trợ khác nhau cho các chế độ chính khác nhau. Ví dụ:
(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)))))