ฉันพยายามกำหนดมาโครที่สร้างรายการคำสุ่ม - ไอชอย่างรวดเร็ว
ฉันต้องการให้แมโครเปลี่ยนสิ่งนี้เป็นรายการที่ชอบ
a
b
c
d
e
เป็นนี้
arezzo
bywords
czars
détente
eyrie
สิ่งที่ฉันมี:
- วางเคอร์เซอร์บนจดหมาย
a
- เริ่มบันทึกมาโคร
qq
a
เข้าสู่โหมดแทรก<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the letter
a`<C-p>
arezzo
เลือกรายการสุดท้ายในรายการเสร็จสิ้นที่ปรากฏขึ้นในระบบของฉันคำของมัน (NB ฉันได้longest
รวมอยู่ในของฉัน'completeopt'
การตั้งค่าที่จำเป็นสำหรับ<C-p>
การทำงานในลักษณะนี้ในระหว่างการดำเนิน:'set completeopt=longest,menuone,preview'
)<C-y>
ยอมรับความสำเร็จ^[^[
ออกจากโหมดแทรกj
ย้ายลงไปที่บรรทัดถัดไปพร้อมที่จะทำการดำเนินการเดียวกันในบรรทัดถัดไปq
หยุดการบันทึก
เมื่อฉันสร้างแมโครและทำตามขั้นตอนด้วยตนเองทุกอย่างทำงานได้ดี แต่เมื่อฉันเรียกใช้แมโครฉันเห็นข้อความที่กระพริบในบรรทัดคำสั่งบางอย่างเช่น:
กำลังสแกนไฟล์พจนานุกรม
และไม่มีสิ่งใดเกิดขึ้นคำสั่งในมาโครเท่านั้นที่j
จะทำงานนั่นคือเคอร์เซอร์จะเลื่อนลงมาที่บรรทัด แต่ไม่มีคำสั่งเสร็จสิ้นที่เรียกใช้
เป็นไปได้หรือไม่ที่จะใช้การเติมโหมดสำเร็จในมาโครและถ้าเป็นเช่นนั้นฉันจะทำอย่างไร
set completeopt=longest,menuone,preview
ของlongest
ตัวเลือกซึ่งเป็นสาเหตุของ<C-p>
การแทรกทันที ถ้าฉันลบออกlongest
จากcompleteopt
สตริงฉันจะได้รับพฤติกรรมเช่นเดียวกับคุณ ใช่ปุ่มลูกศรใช้งานได้! ขอบคุณ (ฉันลืมคุณสามารถใช้พวกเขาเพื่อนำทางรายการเสร็จสมบูรณ์)
:set completeopt=
และa<c-x><c-k><esc>j
เป็นมาโครของคุณ
<C-p>
ขั้นตอนของคุณ... เมื่อฉันทำเช่นนั้นในเสียงเรียกเข้าของฉันมันแค่ให้ข้อความback at original
- ไม่ได้เลือกรายการสุดท้าย .. ฉันใช้ปุ่มลูกศรขึ้นสองครั้งเพื่อเลือกคำสุดท้าย (กรณีของฉันazures
) กด enter และ จากนั้นEsc+j+q
.. มันทำงานได้ดีในการเรียกใช้แมโคร