Anonim

vi เป็นโปรแกรมแก้ไขข้อความบนหน้าจอที่รู้จักกันดีซึ่งย้อนกลับไปในยุคแรก ๆ ของ Unix คุณสมบัติที่น่าประทับใจที่สุดคือสามารถทำงานในสองโหมดที่แตกต่างกัน

ในโหมดแทรกข้อความจะกลายเป็นส่วนหนึ่งของไฟล์ ในโหมดปกติการกดแป้นถูกเข้าใจว่าเป็นคำสั่งโดยตรง ดังนั้นคำสั่งแป้นพิมพ์ต่างๆจะถูกใช้เพื่อลดปริมาณงานที่จำเป็นในการแก้ไขไฟล์

แต่ถ้าคำสั่งนั้นแตกต่างกันจริง ๆ มันง่ายกว่าที่จะลบบรรทัดหรือแก้ไขโดยใช้คำสั่ง keystroke หรือไม่? - หาคำตอบกัน

การตัดเป็นเส้นหรือบล็อค

ลิงค์ด่วน

  • การตัดเป็นเส้นหรือบล็อค
        • วางเคอร์เซอร์ของคุณไว้ข้างหน้าบรรทัดข้อความที่คุณต้องการลบ
        • กด v และเริ่มการเลือกภาพตัวละคร
        • กด V หากคุณต้องการเลือกทั้งบรรทัด
        • กด Ctrl + v หรือ Ctrl + q หากคุณต้องการเลือกบล็อก
        • วางเคอร์เซอร์ที่ท้ายบรรทัดข้อความ
        • กด d เพื่อตัด
  • การแก้ไขผ่านสาย
  • การลบหลายบรรทัด
  • การใช้อักขระคำและบรรทัดในโหมดปกติ
    • DD
    • x / X
    • ใบสำคัญแสดงสิทธิอนุพันธ์
  • ความคิดสุดท้าย
  1. วางเคอร์เซอร์ของคุณไว้ข้างหน้าบรรทัดข้อความที่คุณต้องการลบ

  2. กด v และเริ่มการเลือกภาพตัวละคร

  3. กด V หากคุณต้องการเลือกทั้งบรรทัด

  4. กด Ctrl + v หรือ Ctrl + q หากคุณต้องการเลือกบล็อก

  5. วางเคอร์เซอร์ที่ท้ายบรรทัดข้อความ

  6. กด d เพื่อตัด

หากคุณต้องการวางบรรทัดนั้นที่อื่นให้ย้ายเคอร์เซอร์ไปที่ตำแหน่งใหม่แล้วกด p โปรดทราบว่าการกด p จะวางเส้นหรือบล็อกหลังตำแหน่งเคอร์เซอร์ หากคุณต้องการวางก่อนตำแหน่งเคอร์เซอร์คุณต้องกด P

การแก้ไขผ่านสาย

คุณสามารถเปลี่ยนข้อความที่เลือกได้หากคุณกด c ในขั้นตอนที่ 6 การกด d จะตัดการกด y จะดึงหรือคัดลอกและ c จะเปิดโหมดแทรกที่คุณสามารถเพิ่มข้อความใหม่ได้ วิธีนี้จะช่วยให้คุณแทนที่ทั้งเส้นหรือบล็อกได้โดยไม่ต้องกังวลกับการตัดมันเสียก่อน

การลบหลายบรรทัด

มีสองตัวเลือกที่ดีถ้าคุณต้องการลบมากกว่าหนึ่งบรรทัดใน vi

“:%d”

คำสั่งนี้จะลบบรรทัดทั้งหมด ':' ทำให้ vi ในโหมดคำสั่ง อักขระ '%' บอกให้ใช้ 'd' (คำสั่งลบ) กับทุกบรรทัด

“:1, $d”

นี่คือทางเลือกที่นิยมมากขึ้น อีกครั้ง ':' แนะนำคำสั่ง '1, $' จะบอกให้ vi ว่าจะเลือกเป้าหมายใด ในตัวอย่างนี้มันจะเป็นบรรทัดที่เริ่มต้นด้วยบรรทัดที่ 1 และบรรทัดสุดท้าย 'd' หมายถึงการลบ

แต่อะไรทำให้คำสั่งนี้ดีกว่าคำสั่งแรก? - อันนี้สามารถปรับได้ คุณสามารถใช้มันเพื่อลบบรรทัดเป็นกลุ่ม แต่ไม่ต้องลบทุกบรรทัด

หากคุณใช้บางอย่างเช่น “:4, $-2d” จากนั้น vi จะลบบรรทัดทั้งหมดระหว่างบรรทัดที่สามถึงวินาที มันปล่อยให้ทั้งสามประการแรกเหมือนเดิมเพราะบรรทัดเริ่มต้นด้วย 1 และไม่ใช่ 0 และคุณระบุบรรทัดแรกที่คุณต้องการลบซึ่งในตัวอย่างนี้คือ 4

โดยทั่วไปแล้ว '-2' หมายถึงจำนวนบรรทัดที่เริ่มต้นจากบรรทัดสุดท้ายและนับกลับเป็น 1

การใช้อักขระคำและบรรทัดในโหมดปกติ

ก่อนอื่นคุณต้องแน่ใจว่าคุณกดปุ่ม Escape เพื่อเข้าสู่โหมดปกติ หลังจากนั้นคุณสามารถใช้คำสั่ง vi ต่อไปนี้เพื่อลบข้อมูลเฉพาะ

DD

คำสั่งนี้จะลบทั้งบรรทัด คุณสามารถวางเคอร์เซอร์ไว้ที่ใดก็ได้บนบรรทัดไม่ว่าจะเป็นคำหรือพื้นที่ว่าง เส้นและพื้นที่ทั้งหมดที่ครอบครองจะถูกลบ

x / X

หากคุณต้องการลบอักขระหนึ่งตัวออกจากบรรทัดคุณสามารถใช้ x วางเคอร์เซอร์หลังตัวละครแล้วกด x สิ่งนี้จะลบอักขระและพื้นที่ที่ครอบครอง นี่ก็หมายความว่าตัวละครอื่น ๆ ที่อยู่ใกล้มันจะมารวมตัวกันเพื่อเติมเต็มช่องว่าง

คุณยังสามารถใช้ x เพื่อลบช่องว่างในบรรทัด หากคุณวางตัวละครไว้เหนือตัวละครและคุณต้องการที่จะลบตัวละครที่อยู่ข้างหน้าออกให้กด X แทน x

ใบสำคัญแสดงสิทธิอนุพันธ์

การกด dw เมื่อเคอร์เซอร์อยู่ในตำแหน่งเริ่มต้นของคำจะเป็นการลบคำนั้น สิ่งนี้จะลบพื้นที่ที่ถูกครอบครองโดยคำว่า หรือคุณสามารถลบเพียงบางส่วนของคำ

วางเคอร์เซอร์ของคุณทางด้านซ้ายของส่วนที่คุณต้องการลบ กด dw เพื่อลบอักขระเหล่านั้นและช่องว่างที่อยู่ในบรรทัด โปรดทราบว่าการทำเช่นนี้จะนำตัวละครที่อยู่ติดกันมารวมกันเพื่อเติมเต็มช่องว่าง

ความคิดสุดท้าย

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

วิธีการลบทุกบรรทัดใน vi