เป็นกลุ่มทดแทนจนสิ้นสุดบรรทัดในโหมดปกติ

ฉันมีข้อความบางส่วนถูกดึงโดยใช้ yiw ในอีกบรรทัดหนึ่ง ฉันต้องการแทนที่ข้อความจากตำแหน่งเคอร์เซอร์ปัจจุบันจนถึงจุดสิ้นสุดบรรทัด ดังนั้นฉันจึงลอง v$p อย่างไรก็ตาม นี่จะเป็นการลบบรรทัดใหม่ที่ท้ายบรรทัดซึ่งฉันไม่ต้องการให้เกิดขึ้นด้วย ฉันจะแก้ไขปัญหานี้ได้อย่างไร?


vim
person piedpiper    schedule 22.08.2020    source แหล่งที่มา


คำตอบ (2)


คุณสามารถ:

  • ปรับพื้นที่การมองเห็นก่อนวาง:

    v$hp
    
  • ใช้การเคลื่อนไหว :help g_ หากคุณไม่มีช่องว่างต่อท้าย:

    vg_p
    
person romainl    schedule 22.08.2020

คุณสามารถลบลงในการลงทะเบียนว่างแล้ววางด้วย "_Dp

อีกทางหนึ่ง หากคุณต้องการบันทึกข้อความที่คุณกำลังลบ คุณสามารถลบในบัฟเฟอร์ปกติ และผ่านจากบัฟเฟอร์ 0 ด้วย D"0p

ฉันพบว่าคีย์การลงทะเบียนดูเทอะทะ ดังนั้นฉันจึงมีแผนที่ใน .vimrc สำหรับพวกเขา:

" leader means "another option key like cmd or meta, but one you get to choose"
let mapleader = "\<Space>"
" get the yank register, not the thing you just deleted
nnoremap <Leader>p "0p
nnoremap <Leader>P "0P
" don't copy the thing you're gonna delete into the delete register
nnoremap <Leader>d "_d
nnoremap <Leader>D "_D

ด้วยการผูกเหล่านี้ ค่าจะกลายเป็น Dp หรือ D p ขึ้นอยู่กับว่าคุณต้องการเก็บข้อความที่ถูกลบหรือไม่


หากคุณไม่ต้องการยุ่งกับการลงทะเบียนเลย ก็มีวิธีง่ายๆ PlD เสมอ

person jeremysprofile    schedule 22.08.2020
comment
PlD นั้นยอดเยี่ยมที่สุด (แม้ว่าจะไม่สวยงามนักก็ตาม) ฉันไม่อยากยุ่งกับรีจิสเตอร์ แต่คงจะได้ทำตามที่คุณอธิบายไว้! - person piedpiper; 24.08.2020