ฉันจะทำให้ Vim ทำแท็บชื่อไฟล์ให้เหมือนปกติได้อย่างไร


289

เมื่อฉันเปิดไฟล์ใหม่ใน Vim และฉันใช้การเติมเต็มของแท็บมันจะทำให้ชื่อไฟล์ทั้งหมดเสร็จสมบูรณ์แทนที่จะทำการจับคู่บางส่วนอย่าง Bash มีตัวเลือกให้แท็บชื่อไฟล์นี้เสร็จสมบูรณ์เช่น Bash หรือไม่


10
ในทางเทคนิคแล้วฉันค่อนข้างมั่นใจว่า "ทุบตี" ไม่ได้ทำให้แท็บเสร็จสมบูรณ์ มันเป็น readline ที่ทำอย่างนั้น
Maxy-B

2
เรากำลังพูดถึงการปรับแต่งพฤติกรรมของคุณสมบัติ ^ X ^ F หรือไม่?
BrunoJCM

คำตอบ:


413

ฉันใช้เป็นการส่วนตัว

set wildmode=longest,list,full
set wildmenu

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

ทุบตีจะเป็นเพียงแค่

set wildmode=longest,list 

แต่ตัวเต็มนั้นมีประโยชน์มาก


1
ฉันหวังว่านี่เป็นพฤติกรรมเริ่มต้นในกลุ่ม ฉันแม้ว่าจะไม่มีการไปถึงแท็บเต็มจนกว่าฉันจะเห็นโพสต์นี้
Neha Karanjkar

6
@NehaKaranjkar ผมขอแนะนำการรักษา dotfiles ที่เก็บเพื่อให้ง่ายในการปรับใช้ในสภาพแวดล้อมใหม่
ไมเคิล

2
มีวิธีการเริ่มต้นเต็มเมื่อมีผลลัพธ์น้อยหรือไม่ set wildmode=longest,5full,listสิ่งที่ชอบ ด้วยผลลัพธ์มากมายเต็มไม่มีประโยชน์ แต่มีประโยชน์น้อยมาก มันจะสมบูรณ์แบบด้วยบางสิ่งบางอย่างเช่น "แสดงเต็มรูปแบบเฉพาะเมื่อเสร็จสมบูรณ์พอดีกับหนึ่งบรรทัดหน้าจอ"
albfan

1
สิ่งนี้เคยทำงานในอดีต (gVim / ubuntu) แต่ตอนนี้ไม่ทำงาน (macvim8.x / macOS) ดูตัวอย่าง ความคิดใด ๆ
Paschalis

1
หลังจากยอมให้แท็บต้นทางเสร็จสิ้นเป็นเวลา 2 เดือนฉันคิดว่าต้องมีวิธีที่จะทำให้มันง่ายขึ้น ขอบคุณ.
ramwin

23

พฤติกรรมที่ใกล้เคียงกับความสำเร็จของ Bash ควรจะเป็น

set wildmode=longest:full,full

wildmenuด้วยตัวอักษรไม่กี่พิมพ์แท็บกดครั้งจะให้ทุกแมตช์ในการใช้ได้ สิ่งนี้แตกต่างจากคำตอบของMichaelที่เปิดหน้าต่างคล้าย quickfix ใต้บรรทัดคำสั่ง

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


ฉันคิดว่าฉันชอบวิธีนี้
Eddy Ekofo

8

หากคุณไม่ต้องการตั้งค่าไวลด์แมนคุณสามารถกดCtrl+ Lเมื่อคุณต้องการเปิดไฟล์ได้ตลอดเวลา Ctrl+ Lจะเติมชื่อไฟล์ให้สมบูรณ์เช่น Bash complete


Ctrl-L ไม่เหมือนกับ bash autocomplete มันไม่วนตัวเลือกที่เป็นไปได้ทั้งหมด
raine

2
ทุบตีฉันไม่ทำหน้าที่เหมือนที่ <Tab>เติมสตริงปัจจุบันให้สมบูรณ์เท่าที่จะเป็นไปได้อย่างไม่น่าสงสัย (เช่นCTRL-Lใน Vim) และ<Tab><Tab>แสดงรายการของการแข่งขันที่เป็นไปได้ (เช่นCTRL-Dใน Vim)
glts

8

นอกเหนือจากปัญหา wildmode / wildmenu, กลุ่มยังมีตัวเลือกที่จะแสดงความสำเร็จที่เป็นไปได้ทั้งหมดโดยใช้+Ctrl Dสิ่งนี้อาจเป็นประโยชน์สำหรับผู้ใช้บางคนที่พบคำถามนี้เมื่อค้นหาตัวเลือกการเติมข้อความอัตโนมัติที่แตกต่างกันใน Vim อย่างที่ฉันทำ


4

ฉันสมมติว่าคุณกำลังใช้การเติมข้อความอัตโนมัติใน Vim ผ่านCtrl+ Nเพื่อค้นหาบัฟเฟอร์ปัจจุบัน เมื่อคุณใช้คำสั่งนี้คุณจะได้รับรายการวิธีแก้ไข เพียงทำซ้ำคำสั่งเพื่อไปยังรายการถัดไปในรายการ เช่นเดียวกับคำสั่งเติมข้อความอัตโนมัติทั้งหมด ในขณะที่พวกเขาเติมคำทั้งหมดคุณสามารถดำเนินการต่อเพื่อดูรายการจนกว่าคุณจะมาถึงคนที่คุณต้องการใช้

Ctrlนี้อาจจะเป็นคำสั่งที่มีประโยชน์มากขึ้น: P+ ความแตกต่างเพียงอย่างเดียวคือCtrl+ Pค้นหาย้อนหลังในบัฟเฟอร์ขณะที่Ctrl+ Nค้นหาไปข้างหน้า ... ตามจริงแล้วทั้งคู่จะให้รายการที่มีองค์ประกอบเดียวกันและอาจปรากฏในลำดับที่แตกต่างกัน


0

:set wildmenuลองใช้ นอกเหนือจากนั้นฉันไม่แน่ใจว่าคุณกำลังพยายามอะไรอยู่

โอ้ใช่และอาจลองลิงค์นี้: ลิงค์

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