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