มีทางลัดในการ "ลบจนกระทั่งขอบเขตการเริ่มของคำศัพท์" ในโหมดบรรทัดคำสั่ง (คล้ายกับ dw ในโหมดปกติ) หรือไม่ ฉันต้องการทำการแมป C-Del ใหม่ ถ้าไม่อาจมีวิธีอื่นในการทำให้ C-Del ทำงานได้หรือไม่
มีทางลัดในการ "ลบจนกระทั่งขอบเขตการเริ่มของคำศัพท์" ในโหมดบรรทัดคำสั่ง (คล้ายกับ dw ในโหมดปกติ) หรือไม่ ฉันต้องการทำการแมป C-Del ใหม่ ถ้าไม่อาจมีวิธีอื่นในการทำให้ C-Del ทำงานได้หรือไม่
คำตอบ:
พบวิธีการที่ค่อนข้างอึดอัดเล็กน้อย:
function! CtrlDel()
let str = getcmdline()
let pos = getcmdpos()
let len = strlen(str)
let i = 0
while pos + i < len && str[pos + i] !~ "\\s"
let i = i + 1
endwhile
while pos + i < len && str[pos + i] =~ "\\s"
let i = i + 1
endwhile
return strpart(str, 0, pos - 1) . strpart(str, pos + i)
endfunction
cnoremap <c-del> <c-\>eCtrlDel()<cr>
ประกอบด้วยฟังก์ชันที่แทนที่บรรทัดคำสั่งทั้งหมดและการแมปที่เรียกใช้ฟังก์ชันนั้นผ่าน Ctrl- \ อี .
ฉันคิด dw
มีสิ่งที่คุณต้องการอยู่แล้ว
สำหรับ "คำศัพท์" ที่ประกอบด้วย "คำตัวอักษร" เท่านั้น
(ตัวอักษรตัวเลขและขีดล่าง)
ในการจัดการคำที่มีเครื่องหมายวรรคตอนให้ใช้ dW
(ด้วยทุน W
)