ฉันต้องการเขียนคำสั่งที่ระบุ "คำที่อยู่ใต้เคอร์เซอร์" ใน VIM ตัวอย่างเช่นสมมติว่าฉันมีเคอร์เซอร์อยู่บนคำและทำให้ปรากฏสองครั้ง ตัวอย่างเช่นหากคำนั้นเป็น "abc" และฉันต้องการ "abcabc" ฉันสามารถพิมพ์:
:s/\(abc\)/\1\1/
แต่ฉันต้องการที่จะสามารถย้ายเคอร์เซอร์ไปที่ "def" และใช้คำสั่งเดียวกันเพื่อเปลี่ยนเป็น "defdef":
:s/\(def\)/\1\1/
ฉันจะเขียนคำสั่งในบรรทัดคำสั่งเพื่อให้ทำสิ่งนี้ได้อย่างไร
:s/\(*whatever is under the commandline*\)/\1\1
yiw
มากกว่าbyw
เพียงเพราะของหน่วยความจำของกล้ามเนื้อ ในสถานการณ์ที่เคอร์เซอร์ของคุณอยู่แล้วที่จะเกิดขึ้นบนตัวอักษรตัวแรกในคำว่าคุณจะต้องละเว้นb
และเพียงแค่พิมพ์yw
VS คุณอาจละเว้นในi
yiw
อุบัติเหตุสามารถเกิดขึ้นได้และการแก้ไขความผิดพลาดนั้นเป็นการกดแป้นที่มากกว่า :)