ประสบการณ์ใช้งาน WezTerm
ก่อนเริ่มต้น
- ต้องติดตั้ง WezTerm ก่อน
- ผู้ใช้ macOS สามารถติดตั้งผ่าน Homebrew ได้ (
$ brew install wezterm)
คำอธิบายเกี่ยวกับ Lua
- การตั้งค่าของ WezTerm กำหนดด้วย Lua
- Lua คล้ายกับภาษาโปรแกรมแบบไดนามิกอื่น ๆ จึงอ่านเข้าใจได้ง่าย
- หากต้องการตั้งค่าที่ซับซ้อน แนะนำให้ศึกษา Lua ให้ลึกขึ้น
ไฟล์ตั้งค่าและวงจรฟีดแบ็ก
- ไฟล์ตั้งค่าอยู่ที่
$XDG_CONFIG_HOME/wezterm/wezterm.lua
- เมื่อมีการเปลี่ยนแปลงไฟล์ตั้งค่า ระบบจะรีโหลดอัตโนมัติ
- สามารถตรวจสอบล็อกได้ผ่าน debug overlay (
CTRL + SHIFT + L)
การตั้งค่าหน้าตา
ธีมสี
- WezTerm มีธีมสีให้มากกว่า 1,000 แบบ
- ตัวอย่าง:
config.color_scheme = 'Tokyo Night'
ธีมสีแบบไดนามิก
- มีตัวอย่างโค้ดสำหรับสุ่มเปลี่ยนธีมสีทุกครั้งที่เปิดหน้าต่างใหม่
เคารพการตั้งค่าหน้าตาของระบบ
- เปลี่ยนธีมสีอัตโนมัติตามโหมดหน้าตาของระบบ
- สร้างไฟล์
appearance.lua แล้วตั้งค่า
การตั้งค่าฟอนต์
- ฟอนต์เริ่มต้นคือ JetBrains Mono
- ตัวอย่าง:
config.font = wezterm.font({ family = 'Berkeley Mono' })
การตกแต่งหน้าต่าง
- ตั้งค่าความโปร่งใสของพื้นหลังหน้าต่างและเอฟเฟ็กต์เบลอ
- ตัวอย่าง:
config.window_background_opacity = 0.9
การตั้งค่าแถบสถานะ
- เพิ่มแถบสถานะแบบ powerline ที่ด้านขวาของ tab bar
- ใช้ Event API ของ WezTerm
การตั้งค่าคีย์
การแมปคีย์พื้นฐาน
- สามารถคงการแมปคีย์พื้นฐานไว้หรือปิดใช้งานได้ (
config.disable_default_key_bindings = true)
ตัวอย่างการแมปคีย์
- แมป
Option + Left Arrow และ Option + Right Arrow ให้ใช้ย้ายข้ามคำ
- ตั้งค่าคีย์ลัดสำหรับเปิดไฟล์ตั้งค่า (
CMD + ,)
ความสามารถด้านมัลติเพล็กซ์
- ใช้งานฟังก์ชันมัลติเพล็กซ์ของ WezTerm
- ตั้งค่าคีย์ลัดสำหรับแบ่งหน้าต่าง (
CTRL + SHIFT + P)
การตั้งค่า leader key
- ตั้งค่า leader key เป็น
CTRL + A
- ใช้คีย์ลัดแบ่งหน้าต่างร่วมกับ leader key
การย้ายระหว่าง pane
- ตั้งค่าการแมปคีย์สำหรับย้ายระหว่าง pane (ใช้ปุ่มทิศทางแบบ vim)
การปรับขนาด pane
- ตั้งค่า key table สำหรับปรับขนาด pane
- ใช้งานร่วมกับ leader key เพื่อปรับขนาด pane
พื้นที่ทำงานโปรเจกต์
การสร้างและสลับ workspace
- สร้างไฟล์
projects.lua แล้วเพิ่มฟังก์ชันสลับโปรเจกต์
- เมื่อเลือกโปรเจกต์ จะสร้าง workspace ใหม่ของ WezTerm
สรุปโดย GN⁺
- WezTerm รองรับการตั้งค่าที่ยืดหยุ่นด้วย Lua จึงปรับแต่งได้หลากหลาย
- ฟังก์ชันรีโหลดอัตโนมัติและ debug overlay ช่วยให้แก้ไขการตั้งค่าได้สะดวก
- ความสามารถด้านมัลติเพล็กซ์และการจัดการ workspace ทำได้ดีมาก และเพิ่มประสิทธิภาพการทำงานได้ด้วยการแมปคีย์ที่หลากหลาย
- เทอร์มินัลที่มีความสามารถคล้ายกันได้แก่ Alacritty และ kitty
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เพิ่งย้ายมาใช้ WezTerm ได้ไม่นานและพอใจมาก ก่อนหน้านี้ใช้ kitty และชอบการตั้งค่าและความเรียบง่ายของ iTerm2 มากกว่า แต่ WezTerm มีความสามารถที่ให้มาจากค่าเริ่มต้นดีกว่ามาก การตั้งค่าเทอร์มินัลสั้นพอที่จะเห็นได้ทั้งหมดในหน้าจอของตัวแก้ไข จากนั้นก็แทบไม่ต้องสนใจเทอร์มินัลอีกเลย
WezTerm ตอบสนองต่อ GitHub issue ได้เร็วมาก โดยปกติจะแก้ปัญหาให้ภายในหนึ่งหรือสองวัน นอกจากปัญหาเล็กน้อยเกี่ยวกับ modifier key ผ่าน SSH แล้ว ฟีเจอร์แทบจะสมบูรณ์แบบ เร็วและดีมาก
ตอนย้ายจาก Kubuntu มา Ubuntu อยากได้บางฟีเจอร์ของ Konsole (scrollback แบบไม่จำกัด, การค้นหาใน scrollback) แต่ไม่อยากติดตั้ง Konsole เลยติดตั้ง WezTerm แทน ชอบทันทีตั้งแต่แรก แต่หลายฟีเจอร์ค้นหาเจอได้ไม่ง่าย เอกสารดีมาก และผู้เขียนก็มีส่วนร่วมและช่วยเหลือดีมาก
เคยลองทั้ง Mac Terminal, iTerm2, Kitty, Warp และอื่น ๆ แต่สุดท้ายมาจบที่ WezTerm ตั้งค่าง่าย เร็ว และดูดี เลยทำธีมไว้ด้วย
ข้อดีของ WezTerm คืออะไร? WezTerm รองรับข้ามระบบปฏิบัติการอย่างสมบูรณ์ ใช้ได้ทั้งบน Linux, macOS, Windows และแชร์การตั้งค่าเทอร์มินัลข้ามหลาย OS ได้
ใช้ WezTerm มาประมาณ 1 ปีแล้ว และสนับสนุน Wez บน GitHub อยู่ WezTerm เป็นเทอร์มินัลที่ยอดเยี่ยม และนักพัฒนาก็ยอดเยี่ยมเช่นกัน ใช้การคัดลอกแบบรวดเร็วและโหมดคัดลอกอื่น ๆ บ่อยมาก
เหตุผลที่ยังใช้ iTerm2 ต่อไปคือฟีเจอร์ "Edit->Selection Respects Soft Boundaries" ฟีเจอร์นี้ตีความอักขระ pipe | เป็นตัวแบ่ง pane ทำให้การเลือกข้อความตัดตามนั้น
เห็นด้วยกับความเห็นของคนอื่น ๆ ใช้ macOS มาเกือบ 10 ปีและใช้ iTerm2 มาตลอด ช่วงหลังเริ่มช้าลง เวลากด cmd-tab ต้องรอเกิน 1 วินาทีกว่าเทอร์มินัลจะโผล่มา
Wez กำลังจะออกหนังสือเกี่ยวกับ system programming ด้วย Rust
นอกเรื่อง: ตอนนี้ตั้งตารอ Ghostty ที่สร้างโดยผู้ก่อตั้ง HashiCorp มากที่สุด