คำถามติดแท็ก autocompletion

สำหรับคำถามเกี่ยวกับคำสั่งต่างๆเพื่อเติมเต็มส่วนหนึ่งของคีย์เวิร์ดหรือบรรทัดที่พิมพ์

5
เป็นไปได้หรือไม่ที่จะมีชื่อฟังก์ชั่นเติมตัวแปรอัตโนมัติ ฯลฯ เมื่อใช้กับโปรแกรม?
IDEs จำนวนมากกรอกชื่อฟังก์ชันตัวแปรชื่อเมธอดและอื่น ๆ โดยอัตโนมัติตามประเภทของผู้ใช้ ชื่อที่ดีที่สุดจะเป็นชื่อที่สมบูรณ์ทั้งในไลบรารีของภาษาและสิ่งที่ถูกกำหนดไว้แล้วในไฟล์อื่นของโปรแกรมเดียวกัน ตัวอย่างเช่นฉันพิมพ์โปรแกรม Python ดังต่อไปนี้ hungy = True def eatFood(food): pass if hungry: eatF บรรทัดeatFจะแสดงโดยอัตโนมัติeatFood()เป็นตัวเลือกการเติมข้อความอัตโนมัติที่มีอยู่ Vim มีความสามารถนี้หรือไม่? ถ้าเป็นเช่นนั้นฉันจะเปิดใช้งานได้อย่างไร

3
วิธีรับ C + + กรอกอัตโนมัติอัจฉริยะ
บรรณาธิการบางคน (เช่น visual studio บน windows) ทำการเติมข้อความอัตโนมัติ C ++ ซึ่งเข้าใจ C ++ ตัวอย่างเช่นกำหนด: #include <vector> int main(void) { std::vector<int> v; v.i ในสตูดิโอภาพอัตโนมัติเสร็จรู้วิธีการเดียวในการเริ่มต้นที่ที่มีฉันเป็นstd::vector<int>insert เป็นไปได้ที่จะได้รับการเติมข้อความอัตโนมัติประเภทนี้เป็นกลุ่มหรือไม่?

6
เสร็จสิ้นการเป็นกลุ่มรหัสสำหรับ Python 3
ฉันใช้ Debian Jessie และใช้ vim-nox ปัจจุบัน (พร้อม + python -python3) ฉันมีช่วงเวลาที่ยากลำบากในการลองโปรแกรมใน Python 3 เนื่องจากฉันต่อสู้กับการทำให้โค้ด Python 3 เสร็จสมบูรณ์ YouCompleteMe ไม่รองรับ Python3 เลย jedi-vim รองรับ Python 3 ที่สมบูรณ์ แต่ถ้าฉันมีตัวเลือก + python3 เท่านั้นถ้าฉันเข้าใจถูกต้อง จากโพสต์หลายรายการจากนักพัฒนา Debian ดูเหมือนว่าการรวบรวม Vim ด้วยแฟล็ก + python3 นั้นใช้งานไม่ได้ ดังนั้นฉันเหลือปลั๊กอิน python-mode นอกเหนือจากข้อเท็จจริงที่ว่าโหมดของหลามนั้นดูเหมือนจะไม่ได้ถูกทำให้ไร้ประโยชน์ (ดู pull-Request และ last commits) และในปัจจุบันมีข้อผิดพลาดอย่างมากเกี่ยวกับเชือกในสาขาหลักของมันมันรบกวน YouCompleteMe ฉันจะได้รับโค้ด Python …

3
จะสร้างฟังก์ชั่นเติมข้อความอัตโนมัติของตัวเองได้อย่างไร?
ฉันจะสร้างรายการการทำให้สมบูรณ์อัตโนมัติของตัวเองสำหรับไฟล์บางประเภทได้อย่างไร ยกตัวอย่างเช่นผมอยาก CSS และ HTML เพื่อเติมข้อความอัตโนมัติจากรายการคลาส CSS ในFontAwesome

5
วิธีที่ง่ายที่สุดในการสลับกิ่งก้านสาขา
ตอนนี้ฉันใช้ fugitive เพื่อจัดการ git เกือบทุกอย่างที่เกี่ยวข้อง แต่ฉันไม่สามารถหาเวิร์กโฟลว์ที่ดีในการมองเห็นและสลับระหว่างสาขาที่มีอยู่ได้อย่างรวดเร็ว ฉันสามารถทำได้:Git checkout <branch-name>ปัญหาคือการเติมข้อความอัตโนมัติทั้งชื่อไฟล์และสาขาและฉันต้องการรายการสาขา

6
ฉันจะให้ Vim แสดงเอกสารของฟังก์ชัน C / C ++ ได้อย่างไร
ผู้แก้ไขส่วนใหญ่มีคุณสมบัติเช่นเมื่อคุณกดแป้นบางปุ่มโดยวางคาเร็ตไว้เหนือฟังก์ชันจะปรากฏเอกสารของฟังก์ชันนั้นพร้อมกับจำนวนและชนิดของอาร์กิวเมนต์ที่ใช้งาน ฉันสงสัยว่า Vim ให้การสนับสนุนดังกล่าวหรือไม่ ตัวอย่างเช่นในขณะที่การเข้ารหัสใน C ฉันใช้ฟังก์ชั่นในqsort()ตัว เนื่องจากฉันไม่แน่ใจเกี่ยวกับประเภทและจำนวนของอาร์กิวเมนต์ที่ใช้ฉันต้องการทราบโดยไม่ต้องหนี Vim เป็นไปได้ไหม?

1
เสร็จสิ้นชื่อไฟล์สำหรับไฟล์ระยะไกล
เพื่อนของฉันแสดงให้ฉันเห็นถึงเคล็ดลับดีๆเกี่ยวกับ Emacs เมื่อไม่นานมานี้ซึ่งเขาสามารถเปิดไฟล์บนเซิร์ฟเวอร์ระยะไกลได้และฉันก็คิดทันทีว่า ฉันสามารถใช้:e scp://user@server//filepathเพื่อทำอย่างนั้นไม่มีปัญหา;) อย่างไรก็ตามเขาสามารถพิมพ์ชื่อเซิร์ฟเวอร์จากนั้นรับไฟล์พา ธ และชื่อ (พร้อมแท็บ) ให้เสร็จสมบูรณ์สิ่งที่ฉันไม่สามารถทำได้ มีใครบางคนรู้ว่าสิ่งนี้สามารถทำได้ในกลุ่ม?

1
แท็บบางส่วนเหมือนทุบตีสมบูรณ์สำหรับชื่อไฟล์ใน Vim
ใน Bash เมื่อมีหลายไฟล์ที่มีคำนำหน้าเหมือนกันและฉันพิมพ์ส่วนหนึ่งของคำนำหน้าและการเข้าชมTabมันจะทำให้คำนำหน้าทั่วไปสมบูรณ์และอนุญาตให้ฉันพิมพ์ต่อไปเพื่อแยกความแตกต่างระหว่างผลลัพธ์ที่เป็นไปได้ ในกลุ่มเมื่อมีหลายไฟล์ที่มีคำนำหน้าเหมือนกันและฉันพิมพ์ส่วนหนึ่งของคำนำหน้าและการเข้าชมTabมันจะเสร็จสิ้นการแข่งขันครั้งแรกทั้งหมดและให้ฉันเลือกระหว่างการแข่งขันทั้งหมด เพื่อลดการตั้งค่าฉันต้องถอยกลับจนกว่าฉันจะไปถึงจุดสิ้นสุดของส่วนทั่วไปจากนั้นพิมพ์บางอย่างเพิ่มเติมและกดTabอีกครั้ง ฉันมักจะมีไฟล์จำนวนมากที่มีคำนำหน้าทั่วไปที่ยาวและไฟล์ที่ฉันต้องการไม่ใช่ไฟล์แรก (ตัวอย่างเช่นไดเรกทอรีของไฟล์โครงการที่มีหลายสิ่งหลายอย่าง makefiles ต่าง ๆ ล้วนมีชื่อMakefile.{whatever}) ฉันจะทำให้ Vim สมบูรณ์ยิ่งขึ้นเช่น Bash เพื่อประหยัดการกดปุ่มจำนวนมากได้หรือไม่? โบนัสหากสิ่งนี้สามารถนำไปใช้กับความสำเร็จอื่น ๆ เช่นกัน (ตัวอย่างเช่นค่า enum ที่ทุกคนมีคำนำหน้าเหมือนกัน)

1
Ctrl-n เสร็จสิ้นใช้เวลานานสำหรับ“ การสแกนไฟล์ที่รวมอยู่”
ฉันกำลังแปรงทักษะความเป็นตัวเองและเล่นซอกับการทำให้เสร็จโดยใช้คำสั่ง Ctrl-n ฉันกำลังเขียนโปรแกรมใน Perl เมื่อฉันอยู่ในโหมดแทรกและกด Ctrl-n ฉันได้รับข้อความว่า "การสแกนไฟล์รวม" ลงที่ด้านล่างของเทอร์มินัลและดูเหมือนว่ามันกำลังสแกนไฟล์ในไดเรกทอรีการกระจาย perl ขั้นตอนนี้อาจใช้เวลาหลายวินาทีก่อนที่จะเสร็จสิ้น ดูเหมือนว่าจะเป็นเช่นนี้กับแพคเกจที่ฉันใส่ซึ่งใส่ความเห็น: #use Moose; ดังนั้นฉันต้องลบบรรทัดเหล่านี้เพื่อให้คุณสมบัตินี้มีค่า ฉันพลาดอะไรไปรึเปล่า? ฉันใช้ปลั๊กอินสนับสนุน perl


1
ฉันจะยกเว้นนามสกุลไฟล์บางไฟล์ไม่เสร็จสิ้นได้อย่างไร
มีวิธีการตั้งค่ากลุ่มที่เกี่ยวข้องกับไฟล์ประเภทใดที่พิจารณาว่า "เหมาะสม" สำหรับการเปิด? ให้ฉันอธิบายด้วยตัวอย่าง ลองนึกภาพคุณกำลังทำงานกับเอกสารลาเท็กซ์ เมื่อคุณสร้างไฟล์คุณจะมีสิ่งต่อไปนี้ในไดเรกทอรีของคุณ (รวมถึงไฟล์อื่น ๆ ที่เกี่ยวข้องกับบิลด์): X.aux X.log X.out X.pdf X.tex ตอนนี้ถ้าคุณกำลังทำงานกับไฟล์อื่น (พูดY.tex) และคุณต้องการ:sp X.texคุณสามารถใช้<Tab>เพื่อวนไฟล์ที่เป็นไปได้เช่น: :sp X<Tab> ดูเหมือนว่ากลุ่มนั้นได้เลือกไฟล์ที่คุณน่าจะเป็นส่วนใหญ่แล้วและเติมข้อความอัตโนมัติให้กับไฟล์เหล่านั้นก่อน นี่คือลำดับที่เสียงเรียกเข้าของฉันคือการเติมข้อความอัตโนมัติ: X.pdf X.tex X.aux X.log X.out อีกครั้งดูเหมือนว่ากลุ่มได้ตัดสินใจว่าฉันอาจต้องการเปิดไฟล์.pdfหรือ.texไฟล์และนำเสนอให้ฉันก่อนและตามลำดับตัวอักษร จากนั้นจะแสดงไฟล์ที่เหลือตามลำดับตัวอักษรอีกครั้ง ประการแรกความเข้าใจของฉันถูกต้องหรือไม่ ถ้าเป็นเช่นนั้นฉันจะบอกกลุ่มได้อย่างไรว่าไม่ควรคิดว่าฉันสนใจเปิด.pdfไฟล์ด้วย? วิธีนี้คนแรก<Tab>จะเอา.texไฟล์มาให้ฉันทันทีที่ไฟล์ที่ฉันกำลังมองหา

1
การเติมคำให้สมบูรณ์
<C-p>และ<C-n>อนุญาตให้เสร็จสิ้นคำที่พบในเอกสารปัจจุบัน ฉันกำลังจดบันทึกและเขียนคำพูด{0,1}^nและ(E,D)หลาย ๆ ครั้ง คำเหล่านี้ประกอบด้วยคำหลายคำ มีวิธีการที่จะกรอกคำด้วย<C-p>และ<C-n>(หรือins-completionคำสั่งอื่น ๆ ที่เกี่ยวข้อง) หรือไม่?

1
ความสมบูรณ์แบบไดนามิก
ฉันพยายามปรับปรุงฟังก์ชั่นการเติมเต็มให้สมบูรณ์ ฉันต้องการอัปเดตตัวเลือกที่ปรากฏในเมนูป๊อปอัปขณะที่พิมพ์อักขระใหม่ ฟังก์ชั่นความสมบูรณ์ของฉันคือ function! lh#icomplete#ecm(findstart, base) abort if a:findstart let l = getline('.') let startcol = match(l[0:col('.')-1], '\v\S+$') if startcol == -1 let startcol = col('.')-1 endif " let g:debug+= ["findstart(".a:base.") -> ".(startcol)] return startcol else " let g:debug += ["matching(".a:base.")"] let words = ['un', 'deux', 'trois', 'trente-deux', 'unité'] call …

2
ฉันจะค้นหาสัญลักษณ์ LaTeX ใน Vim ได้อย่างไร
ฉันสามารถรวมบางส่วนของการเติมเต็มสัญลักษณ์ให้กับ Vim ได้หรือไม่? บรรณาธิการเท็กซ์เฉพาะเช่น TeXMaker ให้รายชื่อของสัญลักษณ์เสร็จ (เช่น\alแสดงรายการด้วย\alpha, \laการแสดง\lambdaและ\langle) โปรดทราบว่าเท็กซ์มีจำนวนค่อนข้างใหญ่ของสัญลักษณ์เพื่อให้ข้อเสนอแนะที่เกี่ยวข้องกับการทำแผนที่คู่มือ\alการ\alphaจะไร้ประโยชน์ ปลั๊กอินที่เกี่ยวข้องฉันมี: SuperTabพร้อมlet g:SuperTabDefaultCompletionType="context"และ set omnifunc=syntaxcomplete#Complete น้ำยาง-Box ถ้าเป็นเรื่องสำคัญฉันใช้ XeLaTeX เพื่อรวบรวม ที่เกี่ยวข้อง: จะค้นหาสัญลักษณ์หรือระบุสัญลักษณ์ทางคณิตศาสตร์หรือตัวละครได้อย่างไร?

1
ยกเลิกเสร็จสิ้น
โดยทั่วไปแล้วการแทรกโหมดเสร็จสิ้น ( <C-n>) จะแทรกคำที่ถูกต้องในครั้งแรกที่ฉันกด<C-n>แต่ไม่เสมอไป ดังนั้นฉันต้องการให้ Vim แทรกการจับคู่ที่เห็นว่าดีที่สุดเมื่อฉันกด<C-n>แต่ก็ยังอนุญาตให้ฉันยกเลิกการแทรกนี้หลังจากนั้นหากการจับคู่ที่ถูกต้องไม่ปรากฏขึ้นหรือเป็นรายการยาว แน่นอนฉันสามารถเขียนโค้ดพฤติกรรมนี้ได้ แต่ฉันรู้สึกว่าควรมีคีย์มาตรฐาน (- รวม) เพื่อทำสิ่งนี้ ใครบางคนสามารถชี้ให้ฉันในทิศทางที่ถูกต้อง? คำถามโบนัส: มีคีย์อื่นที่ฉันสามารถใช้เพื่อให้ได้นัดที่ยาวที่สุด (เหมือนก่อนที่ฉันจะตี<C-n>)? สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้ completeopt=menu

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