Đây là cách hoàn thành trong công ty làm việc (Tôi đơn giản hóa một chút mô tả chi tiết hơn có thể được tìm thấy trong tài liệu của company-backends C-hvcompany-backendsRET.
Bạn có một danh sách các công ty phụ trợ (công cụ hoàn thành) nên cố gắng cung cấp hoàn thành tại điểm. Công ty cố gắng lần lượt từng phụ trợ này và lần đầu tiên trả về bất kỳ ứng cử viên nào được sử dụng để hoàn thành và phần còn lại của các phụ trợ bị bỏ qua. Vì vậy, theo mặc định chỉ có một phụ trợ được sử dụng tại một thời điểm.
Trong trường hợp của bạn (bạn có vẻ như trong chế độ emacs-lisp-mode), phần cuối của emacs-lisp đang trả lại các ứng cử viên để hoàn thành và do đó company-dabbrevcông ty không bao giờ sử dụng để hoàn thành và bạn không bao giờ foobarsentencehoàn thành. Vì vậy, bạn có thể muốn thay đổi phụ trợ công ty để company-dabbrevđi trước company-elisp(hoặc company-capftrong emacsen gần đây). Nhưng tôi đoán đó không phải là điều bạn muốn vì điều đó sẽ đảo ngược tình hình hiện tại và bạn sẽ không nhận được sự hoàn thành từ phần phụ trợ của emacs-lisp (trong trường hợp này được đọc tiếp).
Công ty cung cấp một cách để hợp nhất các hoàn thành từ nhiều nguồn bằng cách sử dụng cái mà nó gọi là groupedphụ trợ. Thông thường các thành viên của company-backendscác phụ trợ riêng lẻ, nhưng nó cũng có thể là một danh sách các phụ trợ trong trường hợp hoàn thành từ các phụ trợ được hợp nhất với điều kiện chúng trả về cùng prefixhoặc văn bản cần hoàn thành (vui lòng xem tài liệu company-backendsđể biết mô tả chi tiết).
Vì vậy, nếu bạn muốn hợp nhất hoàn thành từ company-elisp(trên emacsen gần đây company-capfđược sử dụng) và company-dabbrevchỉ cần làm điều này
(add-to-list 'company-backends '(company-capf company-dabbrev))
Ngoài ra, bạn có thể hợp nhất các phụ trợ khác nhau bằng :withtừ khóa
(add-to-list 'company-backends '(company-capf :with company-dabbrev))
Điều này khác với ví dụ một danh sách các phụ trợ mà không có :withcông ty sẽ chỉ sử dụng các phụ trợ trước :withđể xác định prefix(văn bản cần hoàn thành). Điều này ngụ ý rằng các ứng cử viên từ phụ trợ sau :withsẽ bị công ty bỏ qua, bất kể phụ trợ có trả lại prefixhay không, nếu không có phụ trợ nào trước khi :withtrả lại a prefix.
Bạn có thể muốn đặt cục bộ này trong bộ đệm emacs-lisp (tôi thích làm như vậy)