ในโหมดปกติฉันสามารถกด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
ทำงานด้วย หมายความว่า " b
ack ไปที่จุดเริ่มต้นของคำc
hange w
ord" แต่ฉันคิดว่าciw
น่าจดจำกว่าซึ่งหมายถึง " c
hange i
nner w
ord" เพียงขั้นตอนเดียว
สำหรับคำถามที่สองเกี่ยวกับ "แทนการใช้วาง" "_diwP
วิธีการแก้ปัญหาของฉันคือ มันd
หนึ่งคำi
nner w
อ๊อดไปลงทะเบียนคุณไม่ดูแลและp
ASTE เนื้อหาลงทะเบียนเริ่มต้นของ ข้อดีคือคุณสามารถวางรีจิสเตอร์เริ่มต้นได้หลายครั้งเพราะจะไม่เป็นมลพิษ มัน litte nnoremap ,r "_diwP
ที่ซับซ้อนดังนั้นผมว่ามันเป็นแผนที่
หรือคุณอาจใช้ลำดับคีย์bdwi
เพื่อลบคำปัจจุบันและเข้าสู่โหมด INSERT
bcw
เพื่อไปที่จุดเริ่มต้นของคำปัจจุบันจากนั้นเปลี่ยนคำซึ่งจะทำให้คุณแทรกโหมด
dwi
. ระวังอย่าให้ตำรวจสังเกตเพราะ DWI ผิดกฎหมายในรัฐส่วนใหญ่