# การใช้งาน VI (2)

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

### การคัดลอกและตัดแปะบรรทัด

- ทำการคัดลอกบรรทัดข้อความลงในหน่วยความจำโดยเลื่อนเคอร์เซอร์ไปยังบรรทัดที่ต้อง การแล้วกดปุ่ม 'yy' (กดปุ่ม 'y' สองครั้งติดกัน)
- ทำการแปะติดข้อความที่ได้คัดลอกจากหน่วยความจำลงไปยังเอกสาร โดยเลื่อนเคอร์เซอร์ ไปยังบรรทัดที่ต้องการแล้วกด 'p' vi จะทำการแปะติดข้อความลงไปในเอกสารให้ในบรรทัด ถัดไป หากต้องการแปะติดข้อความยังบรรทัดก่อนหน้าจะต้องกดปุ่ม 'P' (กด shift พร้อม กับ 'p')
- เราสามารถทำการคัดลอกข้อความมากกว่าหนึ่งบรรทัดได้ โดยการพิมพ์จำนวนบรรทัดที่ต้อง การจะทำการคัดลอกก่อนหน้าจะกดปุ่ม 'yy' ตัวอย่างเช่นจะทำการคัดลอกบรรทัดจำนวน 10 บรรทัด ให้กด '10yy' vi จะทำการคัดลอกบรรทัดจำนวน 10 บรรทัดนับจากบรรทัดที่ตรงกับ ตำแหน่งเคอร์เซอร์เป็นต้นไป
- คุณสามารถทำการย้ายข้อความได้เช่นกัน ให้ทำการกดปุ่ม 'dd' ที่บรรทัดตำแหน่งที่ คุณต้องการจะทำการย้ายข้อความ vi จะทำการลบบรรทัดให้ (แต่ยังเก็บไว้ในหน่วยความจำ อยู่) แล้วให้ย้ายเคอร์เซอร์ไปยังตำแหน่งที่ต้องการจะนำข้อความไปไว้แล้วกดปุ่ม 'p' vi จะนำบรรทัดที่ได้ลบไปนั้นย้ายมาไว้ให้

### การยกเลิกคำสั่งหรือการทำ undo

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

### การค้นหาและแทนที่คำในเอกสาร

- เราสามารถทำการค้นหาคำในเอกสารได้โดยการกดปุ่ม '/' ซึ่ง vi จะทำการแสดงเครื่อง หมาย '/' ที่บรรทัดล่างสุด ซึ่งแสดงว่า vi กำลังรอรับคำที่เราต้องการค้นหา ให้ทำการ พิมพ์ข้อความที่ต้องการค้นหาลงไป แล้วกดปุ่ม Enter เพื่อเริ่มทำการค้นหาข้อความ หาก vi พบข้อความที่เราต้องการหา เคอร์เซอร์จะถูกย้ายไปอยู่ที่ตำแหน่งของคำที่หาพบนั้น แต่ถ้าหากหาไม่พบ vi จะแจ้งให้ทราบว่าไม่สามารถทำการค้นหาข้อความที่ต้องการได้ (Pattern not found) เมื่อค้นหาคำเจอแล้วหากต้องการทำการค้นหาคำเดิมซ้ำอีก ให้ทำการกดปุ่ม 'n' vi จะทำ การค้นหาคำที่ต้องการต่อจากตำแหน่งที่เจอล่าสุด และหากต้องการค้นหาคำในตำแหน่งย้อน กลับ ให้ทำการกดปุ่ม 'N' (กด shift พร้อมกับปุ่ม 'n')
- การแทนที่เอกสารสามารถทำได้ในโหมดคอมมานด์ไลน์ของ vi โดยกดปุ่ม ':' เพื่อเข้า สู่โหมดคอมมานด์ไลน์ จะสังเกตุเห็นเครื่องหมาย ':' ถูกแสดงที่บรรทัดล่างสุด แล้ว พิมพ์คำสั่งในรูปแบบต่อไปนี้

      :s/oldtext/newtext/

  จากคำสั่งข้างต้น vi จะทำการเปลี่ยนคำว่า 'oldtext' ในบรรทัดที่ตำแหน่งเคอร์เซอร์ อยู่ เป็นคำว่า 'newtext' หากต้องการจะเปลี่ยนมากกว่า 1 บรรทัด ให้ทำการระบุตำแหน่งบรรทัดที่ ต้องการจะ เปลี่ยน โดยมีรูปแบบดังนี้

      :50,100s/oldtext/newtext/g

  จะทำการเปลี่ยนคำว่า 'oldtext' เป็น 'newtext' จากบรรทัดที่ 50 ถึงบรรทัดที่ 100 หากต้องการเปลี่ยนหมดทั้งไฟล์เอกสาร คำสั่งข้างล่างจะทำการเปลี่ยนคำว่า 'oldtext' เป็น 'newtext' หมดทั้งไฟล์เอกสาร

      :%s/oldtext/newtext/g

### การเคลื่อนย้ายเคอร์เซอร์ในบรรทัด

- การเคลื่อนย้ายเคอร์เซอร์ไปในตำแหน่งต้นบรรทัด ให้กดปุ่ม '^' ถ้าต้องการย้ายเคอร์เซอร์ไปท้ายบรรทัด ให้กดปุ่ม '$'
- การย้ายเคอร์เซอร์ไปมาระหว่างคำ ถ้าหากเป็นการเลื่อนเคอร์เซอร์ไปข้างหน้า จะให้ ปุ่ม 'w' แต่ถ้าหากเป็นการเลื่อนเคอร์เซอร์ย้อนกลับจะต้องใช้ปุ่ม 'b' วิธีนี้จะทำ ให้เคอร์เซอร์กระโดดข้ามไปมาระหว่างคำ แต่ถ้าหากเจออักษรพิเศษเช่น วงเล็บ '()' หรือเครื่องหมายเท่ากับ '=' ก็จะถือว่าเป็นคำด้วย
- หากต้องการจะย้ายเคอร์เซอร์ไปมาระหว่างคำ โดยไม่สนใจว่าตัวอักษรพิเศษอื่นๆมีรูป แบบเป็นคำด้วย จะต้องใช้ 'W' และ 'B' กล่าวคือการแบ่งว่าเป็นคำหรือไม่จะดูว่ามี ช่องว่าง (blank) คั่นอยู่หรือไม่เท่านั้น
- การหาคำในบรรทัด สามารถทำได้โดยกดปุ่ม 'f' และพิมพ์คำที่ต้องการค้นหาในบรรทัด ถ้าหากมีคำที่ต้องการหาอยู่ในบรรทัด เคอร์เซอร์จะกระโดดไปตำแหน่งที่พบคำๆนั้น

### การเรียกคำสั่งของลีนุกซ์จาก vi

หากคุณต้องการจะเรียกใช้คำสั่งของลีนุกซ์จากใน vi คุณจะต้องเปลี่ยนไปใช้คอมมานด์ โหมดด้วยการกดปุ่ม ':' เสียก่อน จากนั้นให้พิมพ์ตัวอักษร '!' เพื่อบอก vi ว่ากำลัง จะเรียกใช้ คำสั่งของลีนุกซ์ แล้วให้พิมพ์คำสั่งของลีนุกซ์ที่คุณต้องการลงไปแล้วกด ปุ่ม Enter vi จะสลับมาทำคำสั่งของลีนุกซ์ที่คุณพิมพ์เข้าไปให้ ตัวอย่าง

    :!ls

จะไปทำคำสั่งของลีนุกซ์ 'ls' คือการแสดงรายชื่อของไฟล์ในไดเรกทอรีปัจจุบันออกมา ดังนั้นหากต้องการออกไปที่เชลล์ของลีนุกซ์ ก็สามารถใช้คำสั่งได้ดังนี้

    :!bash

จะออกไปที่เชลล์และเราสามารถทำการใช้งานคำสั่งของลีนุกซ์อื่นๆได้ตามปกติ หากต้อง กลับเข้ามาที่ vi ตามเดิม ให้พิมพ์คำสั่ง 'exit'
นอกจากการเรียกใช้คำสั่งของลีนุกซ์แล้ว เรายังสามารถนำเอาผลลัพธ์ที่ได้จากคำสั่งของ ลีนุกซ์มาเป็นส่วนหนึ่งของเอกสารได้ โดยต้องทำการพิมพ์ตัวอักษร '.' ก่อนหน้าอักษร '!' และชุดคำสั่งของลีนุกซ์ ตัวอย่าง

    :.!pwd

จะทำการพิมพ์ชื่อของไดเรกทอรีปัจจุบัน ที่ตำแหน่งของเคอร์เซอร์ออกมาให้

HTML developed by Kaiwal Development Team (kaiwal@geocities.com)