vi เป็นโปรแกรมแก้ไขข้อความบนหน้าจอที่รู้จักกันดีซึ่งย้อนกลับไปในยุคแรก ๆ ของ Unix คุณสมบัติที่น่าประทับใจที่สุดคือสามารถทำงานในสองโหมดที่แตกต่างกัน
ในโหมดแทรกข้อความจะกลายเป็นส่วนหนึ่งของไฟล์ ในโหมดปกติการกดแป้นถูกเข้าใจว่าเป็นคำสั่งโดยตรง ดังนั้นคำสั่งแป้นพิมพ์ต่างๆจะถูกใช้เพื่อลดปริมาณงานที่จำเป็นในการแก้ไขไฟล์
แต่ถ้าคำสั่งนั้นแตกต่างกันจริง ๆ มันง่ายกว่าที่จะลบบรรทัดหรือแก้ไขโดยใช้คำสั่ง keystroke หรือไม่? - หาคำตอบกัน
การตัดเป็นเส้นหรือบล็อค
ลิงค์ด่วน
- การตัดเป็นเส้นหรือบล็อค
-
-
- วางเคอร์เซอร์ของคุณไว้ข้างหน้าบรรทัดข้อความที่คุณต้องการลบ
- กด v และเริ่มการเลือกภาพตัวละคร
- กด V หากคุณต้องการเลือกทั้งบรรทัด
- กด Ctrl + v หรือ Ctrl + q หากคุณต้องการเลือกบล็อก
- วางเคอร์เซอร์ที่ท้ายบรรทัดข้อความ
- กด d เพื่อตัด
-
-
- การแก้ไขผ่านสาย
- การลบหลายบรรทัด
- การใช้อักขระคำและบรรทัดในโหมดปกติ
- DD
- x / X
- ใบสำคัญแสดงสิทธิอนุพันธ์
- ความคิดสุดท้าย
-
วางเคอร์เซอร์ของคุณไว้ข้างหน้าบรรทัดข้อความที่คุณต้องการลบ
-
กด v และเริ่มการเลือกภาพตัวละคร
-
กด V หากคุณต้องการเลือกทั้งบรรทัด
-
กด Ctrl + v หรือ Ctrl + q หากคุณต้องการเลือกบล็อก
-
วางเคอร์เซอร์ที่ท้ายบรรทัดข้อความ
-
กด 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 ก็คือตัวแก้ไขแบบโมดัลมันใช้เวลาสักพักกว่าจะชินกับมัน มีข้อเสนอแนะน้อยมากเมื่อมันมาถึงการสลับระหว่างโหมด สิ่งนี้ทำให้ง่ายต่อการป้อนข้อความรหัสโดยไม่ตั้งใจเมื่อคุณควรให้คำสั่งและในทางกลับกัน