3 คะแนน โดย GN⁺ 2024-01-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

vim แบบไม่มีโหมด

  • ไฟล์คอนฟิกในรีโพซิทอรีนี้จะแปลง vim ให้เป็นเอดิเตอร์แบบไม่มีโหมด
  • แทนที่จะต้องจำคำสั่งที่ซับซ้อน สามารถใช้คีย์ลัดมาตรฐานได้ เช่น บันทึกด้วย Ctrl+S เลือกข้อความด้วย Shift+←/→/↑/↓ และคัดลอก/วางด้วย Ctrl+C/V
  • คอนฟิกนี้ไม่ได้มีไว้สำหรับผู้ที่ชื่นชอบ vim มากกว่าเอดิเตอร์แบบกราฟิก แต่เหมาะกับคนที่ปกติใช้ GUI editor (เช่น VSCode) เป็นหลัก ทว่าในบางครั้งก็ต้องการเอดิเตอร์ที่รันได้ในเทอร์มินัล

ข้อควรทราบ

  • เอดิเตอร์แบบไม่มีโหมด คือเอดิเตอร์ทั่วไปที่สามารถกดแป้นแล้วพิมพ์ข้อความได้ทันที และทำคำสั่งอย่างการบันทึกไฟล์ผ่านคีย์ลัด
  • vim ค่าเริ่มต้นซึ่งเป็นเอดิเตอร์แบบมีโหมด จะมีหลายโหมด (เช่น 'command mode', 'insert mode', 'visual mode' เป็นต้น)

Q&A

  • Q: ทำไมไม่เรียนรู้คำสั่ง vim?
    • A: เคยเรียนแล้ว แต่ถ้าไม่ได้ใช้ vim เป็นประจำก็จะลืมอยู่เรื่อย ๆ
  • Q: ทำไมไม่ใช้เอดิเตอร์แบบไม่มีโหมดอย่าง nano?
    • A: ความสามารถของ vim (เช่น การรองรับ syntax highlighting สำหรับหลายภาษา) เหนือกว่าเอดิเตอร์เทอร์มินัลแบบไม่มีโหมดอย่าง nano ไฟล์คอนฟิกในรีโพซิทอรีนี้จะแปลง vim ให้เป็นเอดิเตอร์แบบไม่มีโหมดโดยยังคงความสามารถอันยอดเยี่ยมเอาไว้
โฆษณา

ฟีเจอร์บางส่วน

  • รองรับคีย์ลัดมาตรฐาน
  • แสดงแถบข้อมูลด้านบนของหน้าจอเพื่อช่วยเตือนคีย์ลัด
  • แสดงแถบสถานะด้านล่างของหน้าจอที่มีข้อมูลอย่างไฟล์ ตำแหน่งเคอร์เซอร์ เป็นต้น
  • มีค่าเริ่มต้นที่สมเหตุสมผลสำหรับตัวเลือกจำนวนมาก

ภาพหน้าจอ

  • ตัวอย่างการใช้งาน vim แบบไม่มีโหมดร่วมกับ Nerd Font
  • ตัวอย่างการใช้งาน vim แบบไม่มีโหมดด้วยไฟล์คอนฟิกเวอร์ชัน _ascii
  • ตัวอย่าง vi ซึ่งเป็น vim แบบมีโหมดที่ใช้ modeless.vimrc

สิ่งที่มีอยู่ในรีโพซิทอรี

  • วิธีติดตั้ง, Nerd Font, คีย์ลัด, ไฟล์ต่าง ๆ ในรีโพซิทอรี, ใบอนุญาต

การติดตั้ง

  • โคลนรีโพซิทอรีนี้ไปที่ ~/.vim
  • vim ควรตรวจพบไฟล์ vimrc ภายใน ~/.vim โดยอัตโนมัติ
  • หากตรวจไม่พบ สามารถสร้าง symbolic link จาก ~/.vimrc ไปยัง ~/.vim/modeless.vimrc ได้
  • หากต้องการใช้ vim แบบไม่มีโหมดร่วมกับ sudoedit ให้เพิ่ม export EDITOR=vim ลงในไฟล์ .bashrc/.zshrc/...
  • คุณอาจต้องการใช้ vim แบบมีโหมดเป็น vi โดยแนะนำให้ตั้งค่าให้คำสั่ง vi เรียกใช้ vim เวอร์ชันแบบมีโหมด

Nerd Font

  • การตั้งค่าเริ่มต้นต้องใช้ Nerd Font (ฟอนต์ monospace ที่มีการแทรกไอคอนเพิ่มเติม)
  • ใช้ไอคอนแบบกำหนดเองเหล่านี้ในแถบข้อมูลด้านบนและแถบสถานะด้านล่างของหน้าต่างเทอร์มินัล
  • หากไม่ต้องการหรือไม่สามารถใช้ฟอนต์แบบกำหนดเองได้ รีโพซิทอรีนี้มีไฟล์ statusline_ascii.vimrc และ infoline_ascii.vimrc ที่สร้างแถบสถานะ/แถบข้อมูลด้วยอักขระ ASCII เท่านั้น
โฆษณา

คีย์ลัด

  • vim แบบไม่มีโหมดรองรับคีย์ลัดสำหรับการเปิดไฟล์ บันทึก ปิด ค้นหาและแทนที่ เลือก ตัด คัดลอก วาง และฟังก์ชันอื่น ๆ

ไฟล์ต่าง ๆ ในรีโพซิทอรี

  • modeless.vimrc, modeful.vimrc, colorscheme.vimrc, keybinds.vimrc, infoline_nerdfont.vimrc, infoline_ascii.vimrc, statusline_nerdfont.vimrc, statusline_ascii.vimrc, options_basic.vimrc, options_modeless.vimrc, vimrc, virc, vi, LICENSE, README.md

ใบอนุญาต

  • ชุดไฟล์คอนฟิกนี้เป็นซอฟต์แวร์เสรีและโอเพนซอร์สภายใต้สัญญาอนุญาต MIT

ความเห็นของ GN⁺

  • บทความนี้นำเสนอแนวทางที่น่าสนใจในการทำให้ vim ใช้งานได้คล้าย GUI editor ซึ่งอาจช่วยผู้ใช้ที่ไม่คุ้นเคยกับเอดิเตอร์บนเทอร์มินัลได้อย่างมาก
  • โดยเฉพาะอย่างยิ่ง การคงความสามารถอันทรงพลังของ vim ไว้พร้อมกับมอบคีย์ลัดที่คุ้นเคย เป็นจุดสำคัญอย่างยิ่งที่ช่วยให้ผู้ใช้ทำงานได้รวดเร็วและมีประสิทธิภาพมากขึ้น
  • การตั้งค่าแบบปรับแต่งเองเช่นนี้สะท้อนถึงจิตวิญญาณของความร่วมมือและการแบ่งปันในชุมชนโอเพนซอร์ส พร้อมมอบความยืดหยุ่นให้นักพัฒนาปรับสภาพแวดล้อมการทำงานให้เหมาะกับความต้องการส่วนตัว

1 ความคิดเห็น

 
GN⁺ 2024-01-17
ความเห็นจาก Hacker News
  • ความเห็นเกี่ยวกับการทำให้ Vim เข้าถึงได้ง่ายขึ้น

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

  • ความเห็นเกี่ยวกับเคล็ดลับการใช้ Vim

    ถ้าคุณไม่ชอบ Vim คุณควรรีแมปปุ่ม Escape ไปที่ CapsLock Escape คือปุ่มที่สำคัญที่สุด และควรใช้ทุกครั้งที่จบการพิมพ์ มันไม่ควรเป็นปุ่มที่อยู่ไกลนิ้วที่สุด บางคนใช้ Ctrl+[ หรือ Ctrl+C แต่การรีแมปเป็นวิธีที่ดีกว่า

  • ความเห็นเกี่ยวกับความสามารถที่มีอยู่เดิมของ Vim

    ดูเหมือนผู้เขียนจะไม่รู้ว่า Vim มีโหมด 'easy vim' ที่มีมาในตัวอยู่แล้ว (หรือ evim หรือ vim -y) ถ้าคุณกำลังมองหาเอดิเตอร์ที่ไม่มีโหมด Vim ก็ไม่ใช่ตัวเลือกที่เหมาะ การเรียนรู้ Vim เป็นการเดินทาง และเมื่อคุ้นเคยแล้วคุณจะเข้าใจว่าทำไมมันถึงเป็นแบบนั้น

  • มุมมองส่วนตัวเกี่ยวกับ Vim

    ในฐานะผู้ใช้ Vim มายาวนาน ฉันก็อยากแนะนำให้ลอง vim -y เช่นกัน ส่วนคนอื่นจะใช้เอดิเตอร์อะไรก็ปล่อยเขาไป การเขียนโปรแกรมก็ยากมากพออยู่แล้ว จึงไม่จำเป็นต้องใช้เอดิเตอร์ของตัวเองให้ตรงกับความเชื่อของคนอื่น

  • ความเห็นเกี่ยวกับส่วนติดต่อผู้ใช้แบบรวมศูนย์

    ฉันสงสัยว่าถ้า Unix/Linux รับเอา Common User Access ของ IBM (ระบบเมนูมาตรฐาน) มาใช้ มันจะต่างออกไปอย่างไร VI และ EMacs ก็คงจะมีคีย์ไบน์ดิ้งแบบเดียวกัน

  • ความเห็นเกี่ยวกับความเป็นประโยชน์ในทางปฏิบัติของ Vim

    เหตุผลหลักที่ฉันยังใช้ Vim เป็นครั้งคราว ก็เพราะมันเป็นเอดิเตอร์ที่พอใช้ได้เพียงตัวเดียวที่มีให้ใช้งานโดยปริยายในทุก VM มันมาพร้อมค่าตั้งต้นอยู่แล้ว และการเปลี่ยนการตั้งค่าหรือติดตั้งเอดิเตอร์อื่นก็ไม่ใช่เรื่องง่าย

  • ความเห็นเกี่ยวกับไฟล์ตั้งค่า Vim

    ไฟล์ตั้งค่าในรีโพซิทอรีนี้เปลี่ยน Vim ให้กลายเป็นเอดิเตอร์แบบไม่มีโหมดได้ โดยไม่ต้องจำคำสั่งซับซ้อน สามารถบันทึกด้วย Ctrl+S เลือกข้อความด้วย Shift+ปุ่มลูกศร และคัดลอก/วางด้วย Ctrl+C/V การตั้งค่านี้ไม่ได้มีไว้สำหรับผู้ที่ชอบ Vim มากกว่าเอดิเตอร์แบบกราฟิก แต่มีไว้สำหรับคนที่ปกติใช้ GUI editor (เช่น VSCode) และต้องการเอดิเตอร์ที่รันในเทอร์มินัลได้เมื่อต้องใช้

  • ความเห็นเกี่ยวกับปรัชญาการใช้ Vim

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

  • ความเห็นเกี่ยวกับการทุ่มอารมณ์ให้กับ Vim

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

  • ความเห็นเกี่ยวกับ Vim แบบไม่มีโหมด

    Vim แบบไม่มีโหมดก็เหมือนแซนด์วิชเนยถั่วที่ไม่มีเนยถั่ว แต่ถ้านั่นคือสิ่งที่คุณต้องการ ก็ใช้มันไปแบบนั้นได้เลย