การเพิ่ม company-dabbrev ลงในป๊อปอัปเสร็จสิ้นของ บริษัท ได้อย่างไร


12

ติดตั้ง:

GUI รุ่น GNU Emacs 25.0.50.1 (x86_64-w64-mingw32) ปี 2015-07-25 ใน KAEL

รวบรวมจาก EmacsW64

ใช้เวอร์ชันล่าสุดของจาก MELPA

Windows 7 x64 บิต

สถานการณ์:

ตัวอย่างเช่นฉันพิมพ์ลงในบัฟเฟอร์เพื่อการแสดงผล

จากนั้นเริ่มบรรทัดใหม่ด้านล่างและพิมพ์ fooba ฉันคาดว่าจะได้รับการfoobarsentenceแนะนำจากหน้าต่างป๊อปอัปของ บริษัท foobarsentenceแต่ไม่มี

ผมพบว่ามันออกมาจากคำตอบที่ฉันสามารถใช้ บริษัท dabbrev`` M-/ที่อื่นที่ถูกผูกไว้ แต่ฉันไม่สามารถหาวิธีที่ฉันสามารถ 'ป้อน' คำแนะนำจากcompany-dabbrevในหน้าต่างป๊อปอัป ฉันทำ screencast gif เพื่อทำให้คำถามของฉันชัดเจน

ป้อนคำอธิบายรูปภาพที่นี่

ในขณะที่คุณสามารถดูสายM-/ company-dabbrevแต่ฉันอยากจะเห็นสิ่งที่เสนอในป๊อปอัป บริษัท เสร็จสมบูรณ์ ฉันประหลาดใจที่นี่ไม่ใช่ค่าเริ่มต้น

ข้อเสนอแนะใด ๆ เพื่อ 'ป้อน' คำแนะนำจากcompany-dabbrevไปยังหน้าต่างป๊อปอัปของ บริษัท


นี่คือโหมดหลักอะไร
PythonNut

คำตอบ:


25

นี่คือวิธีการแล้วเสร็จในการทำงานของ บริษัท company-backends C-hvcompany-backendsRET(ฉันกำลังลดความซับซ้อนของบิตรายละเอียดเพิ่มเติมสามารถพบได้ในเอกสาร

คุณมีรายการแบ็กเอนด์ (เอ็นจิ้นที่เสร็จสมบูรณ์) บริษัท ควรพยายามที่จะจัดให้มีการดำเนินการให้เสร็จสิ้น ณ จุดนั้น บริษัท พยายามใช้ส่วนแบ็คเอนด์นี้แต่ละอันหลังจากที่อีกอันหนึ่งและอันแรกที่ส่งคืนผู้สมัครจะถูกใช้เพื่อความสำเร็จและส่วนที่เหลือของแบ็กเอนด์จะถูกละเว้น ดังนั้นโดยปกติจะใช้แบ็กเอนด์เพียงหนึ่งครั้ง

ในกรณีของคุณ (ดูเหมือนว่าคุณจะอยู่ในโหมด emacs-lisp-) แบ็กเอนด์ emacs-lisp กำลังส่งผู้สมัครกลับมาเพื่อความสำเร็จและ บริษัทcompany-dabbrevก็ไม่เคยใช้จนจบและไม่เคยfoobarsentenceเสร็จ ดังนั้นคุณอาจต้องการเปลี่ยนแบ็กเอนด์ของ บริษัท เพื่อให้company-dabbrevมาก่อนcompany-elisp(หรือcompany-capfใน emacsen ล่าสุด) แต่ฉันเดาว่านั่นไม่ใช่สิ่งที่คุณต้องการเนื่องจากจะย้อนกลับสถานการณ์ปัจจุบันและคุณจะไม่ได้รับความสำเร็จจากแบ็กเอนด์ emacs-lisp (ซึ่งในกรณีนี้จะอ่าน)

บริษัท จัดให้มีวิธีการรวมความสำเร็จจากหลาย ๆ แหล่งโดยใช้สิ่งที่เรียกว่าgroupedแบ็กเอนด์ โดยปกติแล้วสมาชิกของcompany-backendsมีแบ็กเอนด์ของแต่ละบุคคล แต่ก็ยังสามารถเป็นรายชื่อของแบ็กเอนด์ซึ่งในกรณีเสร็จสิ้นจากแบ็กเอนด์ที่มีการผสานให้พวกเขากลับเดียวกันprefixหรือข้อความจะแล้วเสร็จ (โปรดดูเอกสารcompany-backendsสำหรับรายละเอียด)

ดังนั้นหากคุณต้องการรวมความสำเร็จจากcompany-elisp(เมื่อใช้ emacsen ล่าสุดcompany-capf) และcompany-dabbrevทำสิ่งนี้

(add-to-list 'company-backends '(company-capf company-dabbrev))

นอกจากนี้คุณสามารถผสานแบ็กเอนด์ต่าง ๆ โดยใช้:withคำหลัก

(add-to-list 'company-backends '(company-capf :with company-dabbrev))

สิ่งนี้แตกต่างจากตัวอย่างรายการแบ็กเอนด์ที่ไม่มี:withเนื่องจาก บริษัท จะใช้เฉพาะแบ็กเอนด์ก่อน:withเพื่อพิจารณาprefix(ข้อความที่จะแล้วเสร็จ) นี่ก็หมายความว่าผู้สมัครจากแบ็กเอนด์หลังจากที่:withจะถูกละเว้นโดย บริษัท ไม่ว่าแบ็กเอนด์กลับprefixหรือไม่ถ้าไม่มีแบ็กเอนด์ก่อนที่จะกลับมา:withprefix

คุณอาจต้องการตั้งค่านี้ในเครื่องใน emacs-lisp buffer (ฉันชอบที่จะทำ)


@wasamasa ขอบคุณสำหรับข้อเสนอแนะแก้ไขคำตอบของฉันพูดถึง:with
Iqbal Ansari

คุณสมควรได้รับการโหวตของฉัน ฉันสนุกกับการอธิบายของคุณและเรียนรู้สิ่งต่าง ๆ เกี่ยวกับ บริษัท ขอบคุณสำหรับสิ่งนั้น
ReneFroger

ดีใจที่ฉันช่วยได้
อิกบัลอันซารี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.