วิธีกำหนดโอเปอเรเตอร์ที่อัพเดตในขณะที่กำลังรับอินพุตอยู่
ฉันได้กำหนดการแมปโอเปอเรเตอร์ซึ่งใช้พื้นที่ของข้อความจากนั้นขอสตริงการป้อนข้อมูลจากนั้นจัดพื้นที่กับTabularโดยใช้สตริงอินพุตเป็นอาร์กิวเมนต์ มันทำงานได้เป็นอย่างดี ฉันได้ดำเนินการเช่นนี้โดยใช้vim-operator-userเพื่อช่วยกำหนดผู้ประกอบการใหม่: map \aa <Plug>(operator-align) call operator#user#define('align', 'Align') function! Align(motion_wiseness) let expr = input("align: ") if len(expr) != 0 execute "'[,']Tabularize /".expr endif endfunction function! Getchar() let c = getchar() if c =~ '^\d\+$' let c = nr2char(c) endif return c endfunction จากนั้นฉันสงสัยว่าฉันจะทำให้มันทันสมัยขึ้นหรือไม่ในขณะที่เข้าสู่นิพจน์ปกติเพื่อจัดแนว ปัญหาด้วยวิธีการปัจจุบันคือการที่คุณต้องเลิกทำแล้วทำซ้ำถ้าคุณไม่ได้ใช้การแสดงออกที่ถูกต้อง สำหรับความพยายามโต้ตอบฉันทำนี้: map \== <Plug>(operator-align-interactive) call …