คำถามติดแท็ก company-mode

Company-mode เป็นกรอบข้อความสำหรับ Emacs ชื่อนี้ย่อมาจาก "complete anything" ใช้ back-end และ front-end แบบเสียบได้เพื่อดึงและแสดงผู้สมัครที่เสร็จสมบูรณ์

2
การเติมข้อความอัตโนมัติและโหมด บริษัท แตกต่างกันอย่างไร
ดูเหมือนจะมีสองส่วนขยายการเติมข้อความอัตโนมัติที่สำคัญสำหรับ emacs: การเติมข้อความอัตโนมัติและโหมด บริษัท อะไรคือความแตกต่างในทางปฏิบัติระหว่างทั้งสองและเมื่อใดที่ฉันต้องการใช้อีกแบบหนึ่ง พวกมันเข้ากันได้หรือไม่?

1
วิธีทำให้โหมด บริษัท เป็นแบบตัวพิมพ์ใหญ่ - เล็กบนข้อความล้วน
ตามค่าเริ่มต้นโหมด บริษัท ดูเหมือนจะแปลงการคาดคะเนทั้งหมดเป็นตัวพิมพ์เล็ก เช่น: HelloWorldOfGoo HelloWorldOfEmacs -> Hell [Helloworldofgoo] //Company prediction [Helloworldofemacs] สิ่งนี้ไม่สามารถใช้งานได้จริงสำหรับภาษาการเขียนโปรแกรมที่เล็กและใหญ่โดยไม่มีแบ็กเอนด์พิเศษ ฉันจะทำให้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของ บริษัท อ่อนตัวได้อย่างไร

5
ฉันจะทำให้การรหัสฟัซซี่สมบูรณ์
เมื่อใช้ ReSharper ในสัญลักษณ์ Visual Studio สามารถป้อนอัตโนมัติได้โดยใช้การจับคู่แบบคลุมเครือแทนที่จะเป็นการจับคู่คำนำหน้า ตัวอย่างเช่นถ้าฉันกำลังมองหาฟังก์ชั่นที่มีชื่อว่าDoSomethingAmazingฉันสามารถเขียนDoSoAmและมันจะพยายามที่จะขยายแบบสอบถามของฉันเพื่อให้ตรงกับสัญลักษณ์ทั้งหมดที่มีDo, SoและAmหนึ่งในชื่อของพวกเขา อีกตัวอย่างหนึ่งสามารถพบได้ใน gif ด้านล่าง คุณสามารถเห็นการขยายหลายครั้งที่มีการขยายสตริงที่ไม่ใช่คำนำหน้าเป็นสัญลักษณ์ที่ถูกต้อง (ไม่สนใจการขยายตัวอย่างในคำถามนี้ฉันเกี่ยวข้องกับการจับคู่แบบคลุมเครือเท่านั้น) ตัวอย่างอื่นสามารถเห็นได้ในปลั๊กอิน YouCompleteMe สำหรับ Vim: การเติมข้อความอัตโนมัติและโหมด บริษัททั้งคู่ดูเหมือนจะมีการจับคู่คำนำหน้า แต่ฉันไม่สามารถหาวิธีเปิดใช้งานการจับคู่แบบคลุมเครือได้ การแก้ปัญหาจะเป็นการดีที่จะเป็นผู้ไม่เชื่อเรื่องภาษาและนำไปใช้กับแพคเกจการเติมสัญลักษณ์ใด ๆ ที่ฉันใช้ แต่ฉันก็สนใจในการแก้ปัญหาเฉพาะภาษาด้วย ฉันดูHelm แล้วแต่ไม่พบวิธีที่จะนำไปใช้กับการเติมโค้ดให้สมบูรณ์ ฉันได้พิจารณาทางเลือกอื่น ๆ เช่นการมีปุ่มลัดเพื่อเปิดใช้งานการเติมเต็มสัญลักษณ์โดยใช้Helm buffer แต่ฉันหวังว่าจะมีวิธีการทำเช่นนี้โดยใช้การเติมสไตล์ป๊อปอัป ฉันยังเปิดให้ทำการตั้งค่าด้วยตนเองบนพื้นฐานต่อภาษาเนื่องจากบางภาษาแยกสัญลักษณ์ที่มีเครื่องหมายขีดกลางในขณะที่คนอื่นใช้ขีดเส้นใต้หรือขีดคั่นซึ่งฉันคิดว่าจะส่งผลกระทบต่อวิธีการจับคู่จะทำ

2
วิธีที่จะทำให้ yasnippet และ บริษัท ทำงานได้ดีกว่า?
ใน emacs ของฉันสมมติว่าฉันใช้"elisp"yasnippet เพื่อขยายบล็อกเสียงกระเพื่อมในโหมดองค์กร แต่ก่อนที่จะขยายไป บริษัท จะถูกเรียกครั้งแรกที่ทำให้ผมมีเมนูเหมือนโดยไม่ต้องมีตัวเลือก"1. elisp1, 2. elisp2" "elisp"ตอนนี้ถ้าฉันใช้tabเพื่อขยาย yasnippet มันน่ารำคาญ"elisp1"อยู่เสมอที่จะปรากฏบนหน้าจอเป็นครั้งแรก ดังนั้นฉันต้องลบ"1"ก่อนและทำส่วนขยายของตัวอย่าง yasnippet ดังนั้นวิธีการแก้ไขฉันมักจะใช้ปุ่มลูกศรซ้ายเพื่อปิดเมนูเสร็จสิ้นของ บริษัท ก่อน แต่เคอร์เซอร์จะไปที่"elis|p"ดังนั้นฉันจึงใช้ปุ่มลูกศรขวาอีกครั้งเพื่อเลื่อนเคอร์เซอร์ไปที่จุดสิ้นสุด"elisp|"และขยายส่วนย่อย ที่นี่คำถามของฉันมา: ฉันจะผูกtabกุญแจแรกเรียก yasnippet แต่ไม่ใช่ บริษัท ที่จะช่วยชีวิตฉันได้อย่างไร

3
ค้นหาแบ็กเอนด์ที่ใช้ในการทำ บริษัท
เมื่อใช้companyแบ็กเอนด์แบบกำหนดเองcompany-completeท้ายจะไม่คืนความสมบูรณ์เนื่องจากแบ็กเอนด์ที่ทำงานผิดปกติ ในกรณีเช่นนี้จะช่วยให้ทราบว่าแบ็กเอนด์ของ บริษัท ใดถูกใช้เพื่อสร้างรายการความสำเร็จ ฉันจะรับข้อมูลนี้ได้อย่างไรหลังจากการcompany-completeร้องขอ?

1
ฉันจะใช้ บริษัท เพื่อตรวจคำสะกดได้อย่างไร?
company-ispellสามารถเติมคำให้ตรงจุดได้ แต่ถ้าคุณต้องการใช้ Company เพื่อแสดงรายการการแก้ไขที่เป็นไปได้สำหรับการสะกดคำ ในฐานะโบนัสที่เพิ่มเข้ามามีวิธีใดที่จะรวมสิ่งนี้เข้ากับ Flyspell?

1
รับ บริษัท เพื่อแสดงคำแนะนำสำหรับชื่อ Yasnippet
ฉันใช้แพ็คเกจ บริษัท โหมดและ Yasnippet เมื่อฉันพิมพ์บัฟเฟอร์ฉันได้รับคำแนะนำการเติมข้อความอัตโนมัติจาก บริษัท สำหรับ Yasnippet ฉันมีไดเรกทอรีที่มีตัวอย่าง foo.yasnippetในไดเรกทอรีที่ฉันมีตัวอย่างเช่นไฟล์ เมื่อฉันพิมพ์fooในบัฟเฟอร์และกดTabฉันจะได้รับเมนูป๊อปอัพสำหรับ yasnippets ซึ่งฉันจะเลือกตัวอย่าง ( fooหรือfoo-bar) ฉันต้องการแทรก ฉันต้องการรวม yasnippet fooเข้ากับความสำเร็จของ บริษัท เมื่อฉันพิมพ์fooฉันต้องการเห็นตัวอย่างข้อมูลในป๊อปอัปความสมบูรณ์ของ บริษัท เป็นไปได้ไหม ถ้าเป็นเช่นนั้นฉันจะทำสิ่งนี้ได้อย่างไร ใน Vim คุณมีสิ่งนั้นด้วย Neocomplete และ VimSnippets เมื่อฉันไปเที่ยวรอบ ๆ ฉันพบลิงค์นี้กับ Elispแต่ฉันไม่สามารถคาดศีรษะได้ว่าจะนำไปใช้ได้อย่างไร ข้อเสนอแนะใด ๆ

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

1
การเพิ่ม company-dabbrev ลงในป๊อปอัปเสร็จสิ้นของ บริษัท ได้อย่างไร
ติดตั้ง: 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ไปยังหน้าต่างป๊อปอัปของ บริษัท

3
ฉันจะรับ C / C ++ แบบคำนึงถึงบริบทกับ บริษัท ได้อย่างไร
Semantic ดูเหมือนว่าจะสามารถทำเช่นนี้ได้ แต่ฉันไม่สามารถทำงานได้ตามที่คาดหวัง ตัวอย่างเช่นถ้าฉัน#include "Type.h"และประกาศการType tใช้semantic-complete-analyze-inlineเมื่อจุดอยู่หลังจากt.ให้ฉันข้อผิดพลาดอย่างสม่ำเสมอ ไม่พบประเภทสำหรับ `ประเภท t ' แทนที่จะให้สมาชิกทุกคนในที่สาธารณะ (หรือเหมาะสม) แก่tฉัน ฉันจะรับผลลัพธ์ที่ต้องการได้อย่างไร โดยอุดมคติแล้วฉันจะใช้ความหมายใดก็ได้ที่ความหมายอาจให้เป็นแบ็กเอนด์สำหรับ บริษัท

2
เสร็จสิ้นชื่อไฟล์โดยใช้โหมด บริษัท
ฉันเปิดใช้งาน บริษัท โดยใช้คำสั่งต่อไปนี้ใน init.el ของฉัน: (require 'company) (add-hook 'after-init-hook 'global-company-mode) อย่างไรก็ตามฉันไม่ได้รับชื่อไฟล์ที่สมบูรณ์แม้ว่าจะมีผู้ให้บริการบางรายในแหล่งที่มาและเว็บไซต์ดังกล่าวได้รับการสนับสนุน ฉันเริ่มพิมพ์ / home / emmanuel ... และไม่มีอะไรเกิดขึ้นถึงแม้ว่าฉันคาดว่าจะเสร็จสิ้นเพื่อเริ่มตัวเลือกการเสนอหรือไม่ นอกจากนี้การตรวจจับอัตโนมัติของโหมด บริษัท จะตรวจสอบเส้นทางที่สัมพันธ์กันอย่างไรฉันคิดว่าฉันอ่านว่ารองรับแล้ว แต่ฉันไม่แน่ใจว่ามันจะตรวจจับได้อย่างไร

1
วิธีทำการแมปใหม่ของ บริษัท เลือกถัดไปและเลือกปุ่มก่อนหน้า
ฉันไม่ชอบเริ่มต้นM-nและM-pกุญแจcompany-select-nextและcompany-select-previousดังนั้นฉันถูกสงสัยว่าถ้าเป็นไปได้ที่จะทำการแมปเหล่านั้นไปC-nและC-pไม่มีผลต่อการแมปเมื่อเคล็ดลับของ บริษัท ไม่ได้ใช้งาน

2
ข้ามไปยังบัฟเฟอร์เอกสารด้วยโหมด บริษัท
ฉันเพิ่งเปลี่ยนจากauto-complete-modeเป็นcompany-modeและฉันสนุก เมื่อเร็ว ๆ นี้ฉันต้องเขียนโค้ด Emacs Lisp ฉันเริ่มพิมพ์ฟังก์ชั่นของฉันผู้สมัครจะแสดงความสมบูรณ์ฉันกดF1และเอกสารเปิดขึ้นในบัฟเฟอร์อีกอัน ฉันต้องการข้ามไปยังบัฟเฟอร์เอกสารคู่มือแต่เมื่อฉันพิมพ์C-x oมันจะถูกปิด คำใบ้ใด ๆ

1
วิธีการเรียกใช้กระบวนการที่ด้อยกว่าโดยอัตโนมัติเมื่อโหลดโหมดหลักเป็นครั้งแรก?
สมมติว่าเรากำลังทำงานกับ Python (หรือ Matlab) กับ บริษัท โดยไม่ต้องมีกระบวนการ บริษัท ที่ด้อยกว่าข้อความว่า Completion needs an inferior Python process running อย่างไรก็ตามทางออกที่ชัดเจนในการเรียกใช้กระบวนการที่ต่ำกว่าโดยอัตโนมัติ (add-hook 'python-mode 'run-python) จะเรียกใช้กระบวนการ python ใหม่ทุกครั้งที่ฉันเปิดไฟล์. py (ซึ่งมีราคาแพงกว่าด้วย Matlab) มีตะขอที่เรียกใช้เฉพาะครั้งแรกที่เรียกใช้โหมดหลักหรือไม่ หรือมีวิธีการตรวจสอบว่ากระบวนการที่ต่ำกว่าของ python / matlab ทำงานอยู่หรือไม่? หรือมีวิธีอื่นในการแก้ปัญหานี้ในการเรียกใช้กระบวนการที่ด้อยกว่าโดยอัตโนมัติด้วยโหมดหลัก แต่เพียงครั้งเดียว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.