คัดลอกลบแล้ววางในกลุ่ม


15

ฉันเพิ่งเริ่มเป็นกลุ่มเมื่อวานนี้และมีปัญหาในการทำความเข้าใจเกี่ยวกับการคัดลอกและวาง ฉันเข้าใจในการคัดลอกฉันเข้าสู่โหมดภาพเน้นแล้วงัด จากนั้นฉันย้ายไปที่บรรทัดที่ฉันต้องการวาง แต่บ่อยครั้งที่ฉันไม่ต้องการลบข้อความบางส่วนจากบรรทัดนี้ ฉันทำเช่นนี้โดยใช้หรือx dwจากนั้นส่งผลให้สำเนาต้นฉบับของฉันถูกเขียนทับ (เหมือนxและdwดูเหมือนจะตัด) ฉันจะรับสิ่งนี้ได้อย่างไร

เพื่อนำมาทำเป็นตัวอย่าง

$foo = $this->foo->property;
thislineuses($foo);

ดังนั้นด้วยโค้ดข้างต้นที่ฉันคัดลอก$this->foo->propertyฉันก็ต้องการไปยังบรรทัดที่ 2 ลบ$fooและวาง ปัญหาผมคือเมื่อฉันลบ$fooจากบรรทัดที่ 2 $this->foo->propertyนี้อยู่แล้วสิ่งที่ได้รับการวางแทน

คำตอบ:


16

:h copy-moveลองดูที่ งัดเริ่มต้นหรือลบเริ่มต้นไปที่สถานที่ที่เรียกว่าการลงทะเบียน (ลงทะเบียนชื่อ") หากคุณต้องการลบข้อความก่อนที่จะวางคุณต้องหลีกเลี่ยงการเขียนทับลงทะเบียน x ตามที่คุณค้นพบ โชคดีที่คุณสามารถใช้จดหมายหรือหมายเลขอื่นเพื่อตั้งชื่อทะเบียนอื่น

  • "ayy(ดึงบรรทัดลงทะเบียนa)
  • x,, ddฯลฯ (ลบข้อความบางส่วนในการลงทะเบียนที่ไม่มีชื่อ")
  • "ap(วางข้อความจากการลงทะเบียนa)

9

ถ้าปัญหาคือการที่คุณเพียงต้องเปลี่ยนบางอย่างtextที่มีบางส่วนแล้วเพียงแค่เน้นและงัดtext2 text2จากนั้นไฮไลต์textและกดpหรือPเพื่อวางtext2textในสถานที่ของ

คำแนะนำเพิ่มเติมอย่างรวดเร็วสำหรับคำสั่ง vim ทั่วไปคือhttp://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know

สนุก!

แก้ไข: โปรดทราบว่าpวางข้อความหลังเคอร์เซอร์และPก่อนเคอร์เซอร์


นี่เป็นสิ่งที่ดีเพราะคุณไม่ต้องคิดถึงการลงทะเบียนระดับกลางเพื่อดึงออกมา มันใช้งานได้
Jon Schoning

7

คุณสามารถคัดลอกลงทะเบียนชื่อ"aywทำลบของคุณแล้ววางจากลงทะเบียนชื่อ"apทำลบของคุณแล้ววางจากการลงทะเบียนชื่อ

อย่างไรก็ตามโดยทั่วไปแล้วจะง่ายกว่าเพียงแค่เปลี่ยนลำดับที่คุณทำสิ่งต่าง ๆ ทำวางแล้วทำการลบหรือลบแล้วทำการคัดลอก / วาง

"_dหรือคุณสามารถลบลงในหลุมดำทะเบียน ดู/programming//q/54255/70863


3

คุณมีรีจิสเตอร์ต่าง ๆ ที่คุณสามารถใช้เพื่อเก็บค่าข้อความต่าง ๆ หากคุณต้องการบันทึกข้อความไปยังการลงทะเบียนอื่นที่ไม่ใช่ข้อความที่ถูกลบ (เช่นจากการใช้xหรือd w ), ใช้สิ่งต่อไปนี้:

ในการบันทึกข้อความในการลงทะเบียนa:

  • กด" a[คำสั่ง yank and Movement] (บันทึกข้อความลงในทะเบียนa )
  • ไปที่ที่คุณต้องการวางข้อความ
  • กด" a p(วางข้อความจากการลงทะเบียนa)

คุณสามารถใช้การลงทะเบียนสำหรับตัวอักษรแต่ละตัวบนแป้นพิมพ์และแต่ละหมายเลข การลบข้อความจะไม่ใช้การลงทะเบียนเหล่านั้นดังนั้นข้อความจะยังคงอยู่ในการลงทะเบียนจนกว่าคุณจะสิ้นสุดเซสชันของคุณหรือใส่ตัวเลือกอื่นเข้าไปในนั้น


0

คุณไม่จำเป็นต้องเน้นทั้งบรรทัดหากคุณใช้โหมดภาพv(ตรงข้ามกับV) หากนั่นคือสิ่งที่คุณต้องการ

หากคุณกำลังพูดถึงการแก้ไขข้อความที่คัดลอกคุณต้องคัดลอกและลบส่วนแรกก่อน

และถ้าคุณต้องการที่จะคัดลอกแล้วปรับเปลี่ยนต้นฉบับแล้ววางจากนั้นคุณสามารถดึงลงทะเบียนอื่น ๆ กดไลค์"2yแล้วไปที่อื่นและ"2p

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.