เอาต์พุตกลุ่มของคำสั่งภายนอก [ปิด]


-1

ทุกคนสามารถอธิบายวิธีการต่าง ๆ ของคำสั่งภายนอกเช่น :! :%! และวิธีการวางไว้ที่ท้ายไฟล์? ฉันเข้าใจ :X วางไว้หลังบรรทัด X แต่ :G ไม่ปรากฏเพื่อวางไว้ที่ท้ายไฟล์

ฉันเดาว่าฉันสามารถเรียกใช้คำสั่งและผนวกเข้ากับไฟล์ได้จากบรรทัดคำสั่ง command >> % แต่สิ่งนี้จะปรากฏขึ้นเป็นกลุ่มทันที? มีวิธีที่ดีกว่า?

ฉันมักจะอ่านว่าเป็นกลุ่มสามารถใช้เป็นตัวแก้ไขฐานสิบหก แต่ถ้าคุณไม่แก้ไขในไบนารีมันอาจทำลายไฟล์ ... ทำไม?


2
หากคุณมีคำถามหลายข้อให้ถามคำถามหลายข้อ
romainl

คำตอบ:


2

[count]G เป็นคำสั่งโหมดปกติที่ใช้เพื่อเลื่อนเคอร์เซอร์ไปที่บรรทัด [count]เริ่มต้นที่บรรทัดสุดท้ายถ้าไม่ [count] ได้รับ คุณไม่สามารถใช้มันเป็นช่วงสำหรับคำสั่ง Ex

ในช่วงทางลัดสำหรับ "บรรทัดสุดท้าย" คือ $.

ความแตกต่างระหว่าง :!command และ :{range}!command คืออดีตดำเนินการ command ใน subshell โดยไม่ผ่านอะไรไปยังคำสั่งผ่าน stdin ในขณะที่หลังผ่านไป {range} ไปยัง command ผ่านทาง stdin และแทนที่ด้วยเอาต์พุตของ command. มันถูกเรียกว่า กรอง และคุณสามารถอ่านทั้งหมดเกี่ยวกับเรื่องนี้ได้ :help filter.

เนื่องจากคุณไม่ต้องการกรองเนื้อหาของบัฟเฟอร์ของคุณรูปแบบที่เหมาะสมสำหรับการอ่านผลลัพธ์ของ command อยากจะเป็น :!command.

:read เป็นคำสั่งที่เหมาะสมที่จะใช้ถ้าคุณต้องการที่จะแทรกเอาท์พุทของคำสั่งภายนอกในบัฟเฟอร์ปัจจุบัน

ใช้คำสั่งนี้เพื่อแทรกเอาต์พุตของคำสั่งภายนอก command ด้านล่างบรรทัดปัจจุบัน:

:r!command

ใช้คำสั่งนี้เพื่อแทรกเอาต์พุตของคำสั่งภายนอก command ด้านล่างบรรทัด 15:

:15r!command

ใช้คำสั่งนี้เพื่อแทรกเอาต์พุตของคำสั่งภายนอก command ด้านล่าง "foo" ถัดไป:

:/foo/r!command

ใช้คำสั่งนี้เพื่อผนวกเอาต์พุตของคำสั่งภายนอก command ถึงบัฟเฟอร์ปัจจุบัน:

:$r!command

ใช้อันนี้ไป ย่อหน้า เอาต์พุตของคำสั่งภายนอก command ถึงบัฟเฟอร์ปัจจุบัน:

:0r!command

ดู :help :read! และ :help range.

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