ในโหมดปกติฉันสามารถกดCtrl+ Eซึ่งจะลบส่วนที่เหลือของคำปัจจุบันและไปที่โหมดแทรก
ฉันต้องการลบทั้งคำโดยไม่คำนึงถึงตำแหน่งเคอร์เซอร์ (ภายในคำนั้นแน่นอน)
ในโหมดปกติฉันสามารถกดCtrl+ Eซึ่งจะลบส่วนที่เหลือของคำปัจจุบันและไปที่โหมดแทรก
ฉันต้องการลบทั้งคำโดยไม่คำนึงถึงตำแหน่งเคอร์เซอร์ (ภายในคำนั้นแน่นอน)
คำตอบ:
คุณสามารถใช้ "เปลี่ยนคำภายใน" โดยพิมพ์ "ciw" เพื่อลบคำที่เคอร์เซอร์ของคุณเปิดอยู่
คำสั่ง "inner" และ "a" นั้นยอดเยี่ยมใน Vim ลองใช้ "ci {" ใน {} block หรือ "ca {" หากคุณต้องการลบอักขระ {} ตัวด้วย หากต้องการแปลคำสั่งเหล่านี้เป็นภาษาอังกฤษเพื่อให้จำได้ดีขึ้นให้ลอง: "change inner {block" และ "change a {block"
เอกสารประกอบที่http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
ciwและcawไม่เหมือนกันทุกประการ: ciwลบเฉพาะคำcawลบช่องว่างต่อท้ายด้วย
ตอบคำถามติดตามของคุณ: viwp
v -> start visual mode
iw -> select the 'inner word'
p -> paste - in visual mode it replaces the visually selected text.
yiw ciw<C-r>0หลังจากนั้นคุณสามารถวางเคอร์เซอร์บนคำถัดไปและใช้.เพื่อแทนที่ซ้ำ
:%s/a/b/gแล้วคุณก็ใช้โหมดอดีตเป็นกลุ่มของ aอาจเป็นข้อความที่แน่นอนหรือการแสดงออกปกติและbเป็นสิ่งที่คุณจะเข้ามาแทนที่การแข่งขันทั้งหมดaที่มี คุณสามารถทดสอบ regexes ด้วย/โหมดvim แทนที่%ด้วยหมายเลขบรรทัดหรือช่วงหากคุณไม่ต้องการแทนที่ในทุกบรรทัด
สำหรับคำถามแรกbcwทำงานด้วย หมายความว่า " back ไปที่จุดเริ่มต้นของคำchange word" แต่ฉันคิดว่าciwน่าจดจำกว่าซึ่งหมายถึง " change inner word" เพียงขั้นตอนเดียว
สำหรับคำถามที่สองเกี่ยวกับ "แทนการใช้วาง" "_diwPวิธีการแก้ปัญหาของฉันคือ มันdหนึ่งคำinner wอ๊อดไปลงทะเบียนคุณไม่ดูแลและpASTE เนื้อหาลงทะเบียนเริ่มต้นของ ข้อดีคือคุณสามารถวางรีจิสเตอร์เริ่มต้นได้หลายครั้งเพราะจะไม่เป็นมลพิษ มัน litte nnoremap ,r "_diwPที่ซับซ้อนดังนั้นผมว่ามันเป็นแผนที่
หรือคุณอาจใช้ลำดับคีย์bdwiเพื่อลบคำปัจจุบันและเข้าสู่โหมด INSERT
bcwเพื่อไปที่จุดเริ่มต้นของคำปัจจุบันจากนั้นเปลี่ยนคำซึ่งจะทำให้คุณแทรกโหมด
dwi. ระวังอย่าให้ตำรวจสังเกตเพราะ DWI ผิดกฎหมายในรัฐส่วนใหญ่