วิธีคัดลอกข้อความที่ดึงไปยังพรอมต์คำสั่ง VI


118

ฉันต้องการทราบว่ามีวิธีใดบ้างที่ฉันสามารถวางข้อความที่ดึงออกมาในหน้าต่างคำสั่งได้ ตัวอย่างเช่นหากฉันดึงคำและต้องการ grep ในบางตำแหน่งฉันไม่สามารถวางคำโดยใช้ 'p' ได้ อย่างไรก็ตามหากฉันคัดลอกไปยังคลิปบอร์ด Shift-Insert จะวางสิ่งเดียวกัน

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

ฉันใช้ gvim บน Windows

คำตอบ:


174

ลองใช้

<ctrl+r>"

โดยที่ "ย่อมาจาก default register


7
โปรดทราบว่าสิ่งนี้ยังทำงานในโหมดแทรกปกติไม่เพียง แต่ในบรรทัดคำสั่งเท่านั้น
user55400

25
หากคุณใช้*แทนคุณ"จะได้รับเนื้อหาของคลิปบอร์ดของระบบแทน (ซึ่งอาจมีประโยชน์)
ประ - เถิดเทิง

40

<C-R>"จะวางบัฟเฟอร์เริ่มต้น หรือคุณสามารถใช้q:เพื่อเปิดบัฟเฟอร์สำหรับคำสั่งถัดไป ลอง:help q:


10
อึศักดิ์สิทธิ์q:สุดยอดมาก
Hubro

19
  • ให้แน่ใจก่อนว่าคุณอยู่ในโหมดปกติโดยการกด Esc
  • หนึ่งครั้งในโหมดปกติกด :
  • จากนั้นใช้ชุดแป้นพิมพ์ctrl-rจากนั้นพิมพ์"

หมายเหตุ: หากคุณกำลังดึงบรรทัดเต็มที่มีพา ธ ไฟล์สัมพัทธ์ฟีดบรรทัดจะถูกวางด้วยเช่นกัน ... เช่น :! touch src/bash/script.sh^M

จะสร้าง "เส้นทางไฟล์ตลก" ที่มี "\ r" ถ้าคุณไม่ลบสุดท้าย^M...


13

เพื่อช่วยคุณประหยัดขั้นตอนในการดึงหากเคอร์เซอร์ของคุณอยู่บนคำที่คุณต้องการใช้ใน Ex ให้ใช้:

 <ctl-r><ctl-w>

สิ่งนี้หลีกเลี่ยงการดึงเพื่อวางลงในบรรทัดคำสั่ง แทนที่จะวางคำไว้ใต้เคอร์เซอร์ลงบนบรรทัดคำสั่งโดยตรง เช่น:

:%s/<ctl-r><ctl-w>/foo/g

5

หากเป็นเพียงคำที่คุณต้องการคัดลอกคุณสามารถใช้ได้ <C-r><C-w>

  1. วางเคอร์เซอร์ไว้เหนือคำนั้น
  2. จากนั้นคุณสามารถพิมพ์สิ่งที่ต้องการ :vim <C-r><C-w> *

3

คุณสามารถดึงไปที่คลิปบอร์ดโดยใช้*บัฟเฟอร์ที่มีชื่อ ตัวอย่างเช่นจะคัดลอกบรรทัดปัจจุบันไปยังคลิปบอร์ด:

"*yy

ดังนั้นคุณสามารถคัดลอกบรรทัดโดยใช้สิ่งนี้แล้ววางด้วย shift-insert ในบรรทัดคำสั่ง

ในทำนองเดียวกันคุณสามารถวางจากคลิปบอร์ดดังนี้:

"*p

2

คลิปบอร์ด+บน Mac เป็นอย่างน้อย คุณต้องเขียน"+yyเพื่อดึงเส้นไปยังคลิปบอร์ดแล้ว"+pวาง แม้ว่าคุณจะสามารถใช้ Command-C และ Command-V ได้ตลอดเวลา

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