คุณกำลังพิมพ์คำสั่งอยู่ แล้วต้องดูอะไรสักอย่าง ไฟล์ที่เพิ่งแก้ หน้าเว็บที่เพิ่งรันขึ้นมา สิ่งที่เกิดขึ้นต่อจากนั้นแทบจะเป็นพิธีกรรม กด Command-Tab ไปอีกหน้าต่าง มองหาแท็บที่ใช่ ดูเสร็จแล้วหาทางกลับมา แล้วนั่งนึกอยู่สองวินาทีว่าเมื่อกี้ค้างอยู่ตรงไหน
สองวินาทีนั้นไม่ได้แพงเพราะยาว แพงเพราะเกิดวันละหลายสิบครั้งต่างหาก ต้นทุนจริงคือการที่ต้องประกอบความคิดกลับใหม่ทุกครั้งที่กลับมา ไม่ใช่เวลาที่เสียไปกับการสลับหน้าต่าง
Productize ทดลองย้ายงาน 2 อย่างที่สลับบ่อยที่สุด คือการดูหน้าเว็บและการแก้ไฟล์ markdown เข้ามาอยู่ในเทอร์มินัลทั้งคู่ บทความนี้เล่าว่าเครื่องมือแต่ละตัวทำอะไรได้จริง ตัวไหนคุ้มติดตั้ง และเส้นที่เราใช้ตัดสินว่างานตรงหน้าควรเปิดด้วยอะไร
ช่วงที่ 1เส้นตัดสินมีข้อเดียว จะแก้ จะดู หรือจะเปิดเว็บ
คนส่วนใหญ่เข้าเรื่องนี้ด้วยคำถามว่าเครื่องมือไหนดีที่สุด แล้วจบด้วยการใช้ตัวเดียวกับงานทุกแบบ ซึ่งแปลว่าครึ่งหนึ่งของเวลาใช้ผิดตัว
คำถามที่ใช้ได้จริงกว่าคือ ตอนนี้อยากทำอะไรกับไฟล์หรือหน้านั้น คำตอบมีแค่ 3 แบบ และแต่ละแบบมีเครื่องมือของมันเอง
- จะแก้ คือแก้ข้อความแล้วบันทึก งานนี้ต้องการความเร็วในการเข้าออก ไม่ต้องการภาพสวย
- จะดู คือต้องเห็นของที่เทอร์มินัลวาดไม่ได้ ไดอะแกรม ตารางที่จัดรูปแล้ว สูตรคณิตศาสตร์
- จะเปิดเว็บ คือดูหน้าที่ต้องรันโค้ดถึงจะแสดงผล เช่นแอปที่เพิ่งรันขึ้นมาบนเครื่อง
3 แบบนี้ไม่ได้แข่งกัน มันเป็นคนละงาน เครื่องมือที่เก่งเรื่องเข้าออกเร็วมักวาดภาพไม่ได้ และเครื่องมือที่วาดภาพได้ก็มักหนักเกินกว่าจะเปิดเพื่อแก้คำผิดคำเดียว
ช่วงที่ 2terminal browser คืออะไร และทำไมของใหม่ไม่เหมือนของเดิม
terminal browser คือเบราว์เซอร์ที่แสดงผลอยู่ในหน้าต่างเทอร์มินัล แต่คำนี้ครอบของ 2 อย่างที่ทำงานคนละแบบกันสิ้นเชิง และความต่างนี้คือสิ่งที่ทำให้คนผิดหวังเวลาลองครั้งแรก
แบบเดิม แปลงหน้าเว็บเป็นตัวอักษร
lynx กับ w3m อยู่มาหลายสิบปี วิธีทำงานคืออ่าน HTML แล้ววาดใหม่เป็นตัวอักษรล้วน เร็วมาก เบามาก และใช้ได้ทุกที่ที่มี shell
ข้อจำกัดอยู่ตรงที่เว็บสมัยนี้ส่วนใหญ่ต้องรัน JavaScript ก่อนถึงจะมีเนื้อหา หน้าที่ประกอบร่างด้วยโค้ดฝั่งผู้ใช้จึงมักโผล่มาว่างเปล่า ไม่ใช่เพราะโปรแกรมพัง แต่เพราะมันไม่เคยรันโค้ดนั้นตั้งแต่ต้น
แบบใหม่ รัน Chromium จริงแล้วส่งภาพเข้ามา
ตัวที่เราใช้อยู่ชื่อ terminal-browser ของ zenbu-labs วิธีทำงานต่างออกไปคนละขั้ว มันรัน Chromium จริงแบบไม่มีหน้าต่างของตัวเอง แล้วส่งภาพที่เรนเดอร์เสร็จแล้วเข้าไปวาดในเทอร์มินัลผ่าน kitty graphics protocol ซึ่งเป็นข้อตกลงที่ให้ส่งภาพจริงเข้าจอเทอร์มินัลได้
ผลคือสิ่งที่เห็นในช่องเทอร์มินัลคือหน้าเว็บเดียวกับที่เบราว์เซอร์ปกติเห็น ครบทั้ง JavaScript ทั้ง CSS ทั้งฟอนต์ เพราะมันคือ Chromium ตัวจริงที่วาดออกมา ไม่ใช่การตีความ HTML ใหม่
ราคาของความสามารถนี้ไม่ถูก ตอนอ่านโค้ดเมื่อ 31 กรกฎาคม เราพบว่าต้องใช้ Electron เวอร์ชัน 43.1.1 ที่ zenbu-labs แก้เอง และจะไม่ยอมเริ่มทำงานเลยถ้าไม่มีความสามารถส่งภาพแบบใช้หน่วยความจำร่วมกัน ส่วนหน้าตาของตัวเบราว์เซอร์เองก็ไม่ได้ใช้ HTML เขียน แต่เขียนด้วย React ที่วาดลงเครื่องมือวาดภาพที่เขียนด้วย Rust อีกที
ข้อจำกัดที่ต้องรู้ก่อนลง มันรันได้เฉพาะ macOS บนชิป Apple และถ้าใช้ Ghostty เป็นเทอร์มินัลต้องเป็นรุ่น 1.3.0 ขึ้นไป
| เทียบตรงๆ | lynx / w3m | terminal-browser |
|---|---|---|
| หน้าที่ต้องรัน JavaScript | มักว่างเปล่า | เห็นครบ |
| สิ่งที่เห็น | ตัวอักษรที่วาดใหม่ | ภาพจาก Chromium จริง |
| ติดตั้ง | คำสั่งเดียว | ต้องใช้ Electron รุ่นที่แก้เอง |
| เครื่องที่ใช้ได้ | แทบทุกที่ที่มี shell | macOS ชิป Apple เท่านั้น |
| แบ่งช่องให้เอง | ไม่ | ใช่ สั่งได้ว่าจะแบ่งไปทางไหน |
คำสั่งที่มีจริงมี 4 ตัว open เปิด ls ดูว่ามีตัวไหนรันอยู่ setup ตั้งค่าเทอร์มินัลให้รองรับ และ action สำหรับสั่งงานหน้าที่เปิดอยู่ สังเกตว่าไม่มีคำสั่งสำหรับปิด ซึ่งกลายเป็นเรื่องที่ต้องรู้จริงจัง และเราแยกไปเล่าไว้ช่วงสุดท้าย
terminal-browser open localhost:5173 --split right
terminal-browser ls
ช่วงที่ 3แก้ markdown ในเทอร์มินัลด้วย Helix
ฝั่งแก้ไฟล์ เราเลือก Helix ตอนต้นเดือนสิงหาคม หลังลองเทียบกับตัวอื่นแล้วตัดออกด้วยเงื่อนไขข้อเดียว คือมันต้องอยู่ในเทอร์มินัล ตัวที่เป็นหน้าต่างแยกจึงตกไปทั้งหมดตั้งแต่รอบแรก
เหตุผลที่ชนะไม่ใช่เพราะฟีเจอร์เยอะกว่า แต่เพราะใช้งานได้ทันทีโดยไม่ต้องประกอบอะไรเลย ค้นหา เลือกหลายจุดพร้อมกัน กระโดดตามหัวข้อ ทำได้ตั้งแต่เปิดครั้งแรก ไม่ต้องไล่ติดตั้งปลั๊กอินทีละตัวเหมือน editor สายเทอร์มินัลรุ่นก่อน
ต่อกับ marksman ตัวช่วยด้านภาษาสำหรับ markdown แล้วจะเติมลิงก์และหัวข้อข้ามไฟล์ให้ ช่วยให้แก้เอกสารกองใหญ่ที่ลิงก์หากันไปมาแล้วไม่หลง
2 อย่างที่ต้องตั้งเอง ไม่งั้นเจ็บ
เปิด soft-wrap ถ้าเขียนภาษาไทย เพราะภาษาไทยไม่มีช่องว่างระหว่างคำ ถ้าไม่เปิดให้ตัดบรรทัดอัตโนมัติ ประโยคเดียวจะยาวหลุดขอบจอ แล้วต้องเลื่อนไปทางขวาเพื่ออ่านสิ่งที่ตัวเองเพิ่งพิมพ์
ปิดการจัดรูปแบบอัตโนมัติสำหรับ markdown ตัวจัดรูปแบบจะขึ้นบรรทัดใหม่ให้ทั้งไฟล์ตามกฎของมัน ผลคือแก้ไป 3 คำแต่ diff ขึ้นมา 200 บรรทัด แล้วรีวิวไม่ได้ว่าอะไรเปลี่ยนจริง
ข้อหลังเป็นตัวอย่างของเรื่องที่ค่าตั้งต้นถูกสำหรับโค้ด แต่ผิดสำหรับงานเขียน โค้ดได้ประโยชน์จากการจัดรูปแบบสม่ำเสมอ ส่วนงานเขียนได้ประโยชน์จากการที่บรรทัดอยู่ที่เดิม
ช่วงที่ 4ตารางตัดสิน งานไหนเปิดด้วยอะไร
นี่คือตารางที่เราใช้จริง เรียงตามคำถามว่าอยากทำอะไร ไม่ใช่เรียงตามความสามารถของเครื่องมือ
| อยากทำอะไร | เปิดด้วย | อยู่ตรงไหน | ออกยังไง |
|---|---|---|---|
| แก้ข้อความ แก้คำผิด เขียนต่อ | Helix | ช่องเดิม ไม่สลับแอป | Esc แล้ว :q |
| ดูไดอะแกรม ตาราง สูตร ที่เรนเดอร์แล้ว | โปรแกรมแยกที่เรียกจากเทอร์มินัลได้ | หน้าต่างของตัวเอง | ปิดหน้าต่าง |
| ดูหน้าเว็บที่เพิ่งรันขึ้นมา | terminal-browser | ช่องข้างๆ บทสนทนา | Ctrl+C |
| อ่านหน้าเว็บที่เป็นข้อความล้วน | lynx หรือ w3m | ช่องเดิม | q |
แถวที่สองคือแถวที่คนมักพลาด เทอร์มินัลวาดไดอะแกรมกับสูตรคณิตศาสตร์ไม่ได้ ถ้างานคือต้องเห็นของพวกนั้น การพยายามดันให้มันอยู่ในเทอร์มินัลคือการเลือกผิดตั้งแต่ต้น ให้ข้ามไปโปรแกรมที่เรนเดอร์ได้ แต่เรียกมันจากเทอร์มินัล เพื่อไม่ต้องละมือจากที่ที่ทำงานอยู่
ของเราใช้โปรแกรมอ่าน markdown ตัวหนึ่งที่สร้างเองจากซอร์ส แล้วผูกคำสั่งไว้ให้เรียกจากเทอร์มินัลได้ตรงๆ กลไกที่ทำให้เป็นไปได้น่าสนใจกว่าตัวโปรแกรม คือไฟล์เดียวทำหน้าที่ได้ 2 อย่าง โดยดูว่าถูกเรียกด้วยชื่ออะไร ถ้าเรียกด้วยชื่อที่กำหนดไว้ก็ทำตัวเป็นคำสั่ง ถ้าเรียกตรงๆ ก็เปิดเป็นแอป
ช่วงที่ 5เรื่องที่ไม่มีใครเขียนไว้ ออกจากมันยังไง
โปรแกรมที่วาดหน้าตาของตัวเองเต็มช่องจะยึดจอไว้ทั้งช่องตอนรัน คีย์ปกติที่เคยใช้กลับใช้ไม่ได้ และถ้าไม่รู้วิธีออกจะรู้สึกเหมือนติดอยู่ข้างใน ความรู้สึกนั้นเป็นเหตุผลที่หลายคนเลิกใช้ตั้งแต่วันแรก ทั้งที่ปัญหาแก้ได้ด้วยการรู้ 3 บรรทัด
- Helix กด Esc ก่อนเสมอ แล้วพิมพ์
:qถ้าพิมพ์แล้วไม่ติด แปลว่ายังอยู่ในโหมดพิมพ์ - terminal-browser กด Ctrl+C มันผูกสัญญาณนี้ไว้กับการปิดตัวเอง เพราะไม่มีคำสั่งปิดให้พิมพ์
- ถ้ายังไม่ออก ปิดช่องนั้นทิ้งทั้งช่องด้วยคีย์ปิด pane ของโปรแกรมเทอร์มินัลที่ใช้อยู่
ทางสุดท้ายคือสั่งปิดโปรเซสจากอีกหน้าต่าง ซึ่งได้ผลแน่นอนแต่งานที่ยังไม่บันทึกจะหาย เก็บไว้เป็นทางเลือกท้ายสุดจริงๆ
เรื่องนี้ดูเล็กจนไม่มีใครเขียนไว้ในหน้าแนะนำของเครื่องมือไหนเลย แต่มันคือสิ่งที่ตัดสินว่าจะได้ใช้เครื่องมือนั้นต่อหรือไม่ เราจึงเขียนวิธีออกไว้คู่กับวิธีเปิดเสมอ ตั้งแต่ตอนติดตั้ง ไม่ใช่ตอนที่ติดอยู่ข้างในแล้ว
ช่วงที่ 6เอาไปใช้กับงานของคุณ
ถ้าจะลองสักอย่างเดียว เริ่มที่ฝั่งที่สลับบ่อยกว่า
- ถ้าสลับไปแก้ไฟล์บ่อย ลง Helix ก่อน มันใช้ได้ทันทีโดยไม่ต้องตั้งค่า ถ้าเขียนภาษาไทยให้เปิด soft-wrap เป็นอย่างแรก แล้วค่อยต่อ marksman ทีหลัง
- ถ้าสลับไปดูหน้าเว็บบ่อย ลองของแบบข้อความล้วนก่อน มันฟรีและติดตั้งง่าย ถ้าพบว่าหน้าที่ต้องดูโผล่มาว่างเปล่าเป็นประจำ นั่นคือสัญญาณว่าถึงเวลาของแบบที่รันเบราว์เซอร์จริง
- ทุกครั้งที่ลงของใหม่ จดวิธีออกไว้ทันที ในที่เดียวกับที่จดวิธีเปิด ตอนติดอยู่ข้างในคือตอนที่ค้นหาไม่ได้
หลักที่ใช้ซ้ำได้กว้างกว่าเรื่องเทอร์มินัลคือ อย่าถามว่าเครื่องมือไหนดีที่สุด ให้ถามว่าตอนนี้อยากทำอะไร แล้วเลือกตัวที่ตรงกับคำตอบนั้น การมี 3 ตัวที่ชัดเจนว่าใครทำอะไรนั้นเบากว่าการมีตัวเดียวที่ต้องฝืนใช้กับทุกงาน
- terminal-browser (zenbu-labs): github.com/zenbu-labs/terminal-browser
- kitty graphics protocol: sw.kovidgoyal.net/kitty/graphics-protocol
- Helix: helix-editor.com · marksman: github.com/artempyanykh/marksman
- Ghostty: ghostty.org
- รายละเอียดกลไกของ terminal-browser (Electron ที่แก้เอง, เครื่องมือวาดภาพฝั่ง Rust, ข้อจำกัดเรื่องเครื่อง) มาจากการอ่านซอร์สโค้ดของโปรเจกต์เองเมื่อ 31 กรกฎาคม 2026 ที่ commit
4547875ส่วนคำสั่งทั้ง 4 ตัวยืนยันจาก--helpบนเครื่องที่ใช้จริง 20 สิงหาคม 2026 - เหตุผลการเลือก Helix และค่าตั้งต้นสำหรับภาษาไทย มาจากบันทึกการทำงานของเราเอง 9 สิงหาคม 2026
ซีรีส์เดียวกัน: Ghostty กับ iTerm2 ใช้จริงทั้งคู่ เหลือตัวเดียว · ตั้ง Ghostty กับ Zsh โดยไม่ใช้ตัวติดตั้งคำสั่งเดียว · Raycast ทำอะไรได้จริงบ้าง