Đâ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-backends
RET.
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-dabbrev
công ty không bao giờ sử dụng để hoàn thành và bạn không bao giờ foobarsentence
hoà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-capf
trong 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à grouped
phụ trợ. Thông thường các thành viên của company-backends
cá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 prefix
hoặ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-dabbrev
chỉ 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 :with
từ 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ó :with
cô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 :with
sẽ bị công ty bỏ qua, bất kể phụ trợ có trả lại prefix
hay không, nếu không có phụ trợ nào trước khi :with
trả 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)