ฉันจะใช้ inoremap กับตัวละครหลายตัวได้อย่างไร


1

ฉันใหม่สำหรับการปรับแต่ง ViM ฉันเกือบได้รับการเติมข้อความอัตโนมัติให้ทำงานตามที่ฉันต้องการ นี่คือสายที่น่าสนใจ:

inoremap <expr> i (pumvisible() ? '' : 'i<C-n>') . '<Down>'

ขอให้สังเกตว่ามันจับฉันแล้วยังพิมพ์ (และส่ง<C-n>) ฉันต้องการให้สิ่งนี้ทำงานเหมือนนิพจน์ทั่วไป ฉันจะทำให้เรื่องนี้ทำงานกับตัวอักษรคำใด ๆ ได้อย่างไร ฉันไม่ต้องการให้มีตัวละครที่แตกต่างกันหลายชุด

คำตอบ:


2

ไม่มีสัญลักษณ์แทนในการแมป คุณจะต้องสร้างการแมปทั้งหมดด้วยการวนซ้ำ:

for i in split('abcdefg...', '\zs')
    execute printf("inoremap <expr> %s (pumvisible() ? '' : '%s<C-n>') . '<Down>'", i, i)
endfor

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

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