รับเอาต์พุตจากคำสั่งในบัฟเฟอร์ vim


4

ฉันต้องการทำอะไร

  1. แก้ไขไฟล์เดียว
  2. รัน '! svn diff%' (หรือคำสั่งอื่นใดที่ใช้ชื่อไฟล์ปัจจุบัน )
  3. ใส่ผลลัพธ์ในบัฟเฟอร์ใหม่ (หรือแท็บ)

โบนัส: ไม่ได้ใช้สคริปต์เนื่องจากฉันทำงานกับโฮสต์บ่อยครั้งฉันไม่ได้จัดการตามความชอบของฉัน

ความพยายามครั้งแรกของฉันคือ: :tabnew | r !svn diff %ซึ่งเห็นได้ชัดว่าใช้งานไม่ได้เพราะ% จะว่างเปล่าเนื่องจากมีการแยกวิเคราะห์หลังจากคำสั่ง tabnew

คำตอบ:


7

สิ่งนี้น่าจะใช้ได้:

:tabnew | r !svn diff #

#อ้างอิงบัฟเฟอร์ก่อนหน้าเช่นบัฟเฟอร์ที่คุณเปิดก่อนที่จะ:tabnewถูกดำเนินการ

ยิ่งไปกว่านั้นคือ

:tabnew | set buftype=nowrite | r !svn diff #

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


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