ฉันต้องการเขียนบัฟเฟอร์ทั้งหมดลงในเอาต์พุตมาตรฐาน ( /dev/stdout
) แทนไฟล์และคำสั่งต่อไปนี้ทำงานตามที่คาดไว้ในขณะที่แก้ไขไฟล์:
:w >> /dev/stdout
คำแนะนำ: กดControl+ Lเพื่อรีเฟรชหน้าจอ
แต่มันไม่ทำงานอย่างที่คาดไว้เมื่อฉันพยายามทำสิ่งเดียวกันจากบรรทัดคำสั่ง (แบบไม่โต้ตอบ ):
$ echo This is example. | vim - '+:w >> /dev/stdout' '+:q!'
Vim: Reading from stdin...
เช่นเดียวกันกับ:w !tee
, :x! /dev/stdout
, :%print
และที่คล้ายกัน
ก่อนที่จะเลิกพูดว่า: [Device] 1L, 17C appended
.
มีวิธีการบังคับให้ vim เขียนอินพุตมาตรฐานลงในเอาต์พุตมาตรฐานตรงกลางของไพพ์หรือไม่? อาจจะถูกบัฟเฟอร์อย่างใด?
vim
สำหรับการแยกวิเคราะห์ไฟล์แทนsed
(เช่นการเปลี่ยนแปลงที่ซับซ้อนซ้ำซ้อนกับไฟล์ขนาดใหญ่หลาย ๆ ไฟล์) ตัวอย่างที่ไม่ได้ทำอะไรให้มันง่ายและไม่ได้ทำซ้ำที่มีศักยภาพของผู้อื่นโพสต์