TTT: โปรแกรมแก้ไขข้อความบน Terminal ที่ใช้งานง่ายเหมือน VS Code
ผมใช้เวลาส่วนใหญ่ในเทอร์มินัล ไม่ว่าจะเป็นการเขียนสคริปต์ การแก้ไขไฟล์กำหนดค่า หรือการจัดการเซิร์ฟเวอร์ระยะไกล ซึ่งแม้เทอร์มินัลจะเป็นพื้นที่ทำงานหลัก แต่เมื่อโปรเจกต์เริ่มซับซ้อนขึ้น ผมมักจะหันไปพึ่งความสะดวกสบายของโปรแกรมแก้ไขรหัสแบบกราฟิกอย่าง Zed
บอกตามตรงว่าแม้ผมจะเข้าใจว่า ทำไมผู้คนถึงรักเครื่องมืออย่าง Vim และ Neovim แต่การเรียนรู้โปรแกรมแก้ไขแบบ modal มักจะรู้สึกเหมือนเป็นพันธสัญญาที่มากเกินกว่าที่ผมเต็มใจจะทุ่มเทให้ เพราะความต้องการของผมค่อนข้างตรงไปตรงมา การใช้เวลาหลายชั่วโมงเพื่อจดจำ keybindings หรือการตั้งค่าปลั๊กอินจากศูนย์จึงไม่รู้สึกว่าเป็นการลงทุนที่คุ้มค่า
นั่นคือเหตุผลที่ TTT ดึงดูดความสนใจของผม โปรเจกต์นี้อธิบายตัวเองว่าเป็นทางเลือกที่แท้จริงแทน VS Code, Zed และ Sublime Text โดยทำงานภายในเทอร์มินัลทั้งหมด
การติดตั้ง TTT
บน Linux คุณสามารถติดตั้ง TTT ผ่านสคริปต์ตัวติดตั้งอย่างเป็นทางการได้ ซึ่งเป็นวิธีที่นิยมในปัจจุบันโดยไม่ต้องผ่านแพ็คเกจจัดการ เพียงใช้คำสั่ง curl เข้าสู่ระบบโดยตรง:
curl -sSfL https://raw.githubusercontent.com/eugenioenko/ttt/main/install.sh | shสคริปต์นี้จะติดตั้งไฟล์ไบนารีใน ~/.local/bin ซึ่งคุณสามารถเริ่มใช้งานได้ทันทีด้วยคำสั่ง:
tttนอกจากนี้ยังมีไบนารีที่สร้างไว้ล่วงหน้าให้ดาวน์โหลด เพื่อให้คุณสามารถวางไว้ในโฟลเดอร์ที่ต้องการและใช้งานในโหมดพกพาได้
ฟีเจอร์ของ TTT ที่ผมชอบ
แทนที่จะพยายามเลียนแบบโปรแกรมแก้ไขข้อความบนเทอร์มินัลแบบดั้งเดิม TTT มุ่งหวังที่จะมอบประสบการณ์การแก้ไขที่ทันสมัยเหมือน GUI ในแอปพลิเคชันเทอร์มินัลโดยแทบไม่ต้องตั้งค่าใดๆ ซึ่งมีฟีเจอร์เด่นดังนี้
Syntax Highlighting
TTT ใช้ textmate-go สำหรับ syntax highlighting ซึ่งเป็นการนำ TextMate engine ของ Microsoft มาใช้ในภาษา Go ซึ่งเป็นตัวขับเคลื่อนเดียวกับใน VS Code โดยรองรับภาษามากกว่า 120 ภาษาตั้งแต่เริ่มต้น ทำให้ได้รับประสบการณ์การแก้ไขที่สมบูรณ์อย่างน่าประหลาดใจสำหรับแอปบนเทอร์มินัล

Multi-Cursor Editing
การแก้ไขแบบหลายเคอร์เซอร์เป็นฟีเจอร์ที่ผมเริ่มชื่นชอบหลังจากใช้ Helix และ TTT ก็มาพร้อมกับการรองรับฟีเจอร์นี้ตั้งแต่ต้นโดยไม่ต้องติดตั้งปลั๊กอินเพิ่มเติม
กระบวนการทำงานจะรู้สึกคุ้นเคยสำหรับผู้ที่เคยใช้โปรแกรมสมัยใหม่อย่าง Sublime Text โดยการกด Ctrl+D จะเลือกคำที่ไฮไลต์ในตำแหน่งถัดไป และ Alt+Click จะช่วยให้วางเคอร์เซอร์เพิ่มเติมในตำแหน่งที่ต้องการได้ทันที
Multi-Cursor Editing
การรองรับเมาส์
ในขณะที่โปรแกรมแก้ไขบนเทอร์มินัลส่วนใหญ่รองรับเมาส์เพียงแค่การคลิกหรือเลื่อนหน้าจอ แต่ TTT ไปไกลกว่านั้นด้วยการตอบสนองที่ใกล้เคียงกับแอปพลิเคชันกราฟิก
คุณสามารถคลิกเพื่อวางตำแหน่งเคอร์เซอร์ ลากเพื่อเลือกข้อความ และคลิกขวาเพื่อเข้าถึงเมนูบริบท (context menus) ที่จะเปลี่ยนตัวเลือกไปตามตำแหน่งที่คลิก ทำให้ประสบการณ์การใช้งานดูขัดเกลาและเหมือน GUI มากกว่าโปรแกรมทั่วไป
Mouse Support in TTT
LSP และ Auto Completion
TTT ตอบโจทย์การเขียนโค้ดสมัยใหม่ด้วยการรองรับ Language Server Protocol (LSP) เพื่อให้มีการเติมคำอัตโนมัติอัจฉริยะ
การตั้งค่านั้นทำได้ง่ายเพียงแค่ติดตั้ง language server สำหรับภาษาที่ใช้งาน โดยมี คู่มือเฉพาะที่ครอบคลุมการตั้งค่า language server สำหรับภาษาต่างๆ ช่วยลดความยุ่งยากในการกำหนดค่าเริ่มต้น
LSP Autocompletion
Multi-folder Workspaces
ฟีเจอร์นี้ช่วยให้คุณจัดกลุ่มโฟลเดอร์ที่เกี่ยวข้องเข้าเป็นเวิร์กสเปซเดียวเหมือน multi-root workspaces ใน VS Code โดยสามารถบันทึกเป็นไฟล์ workspace.ttt เพื่อเปิดใหม่ภายหลังได้ทันที
ตัวอย่างเช่น หากบันทึกไฟล์เวิร์กสเปซไว้ คุณสามารถเปิดใช้งานได้ด้วยคำสั่ง:
ttt --workspace ~/Projects/customization.ttt
``` โดยคุณไม่จำเป็นต้องสร้างไฟล์ JSON เอง เพราะสามารถเพิ่มตำแหน่งโฟลเดอร์ผ่านเมนู File -> Save Workspace As ได้โดยตรง
Multifolder Workspaces
### การค้นหาที่ทันสมัยด้วย Ripgrep
TTT ใช้ [ripgrep](https://itsfoss.com/ripgrep-all/) เป็นเบื้องหลังการทำงาน ซึ่งขึ้นชื่อเรื่องความเร็วในการค้นหาโปรเจกต์ขนาดใหญ่โดยไม่หน่วงเครื่อง
ผู้ใช้จะได้รับความสามารถในการค้นหาทั่วทั้งโปรเจกต์ที่รวดเร็ว พร้อมทางลัดอย่าง `Ctrl+K F` สำหรับการค้นหาในเวิร์กสเปซ และ `Ctrl+K R` สำหรับการค้นหาและแทนที่ ให้ความรู้สึกเหมือนใช้โปรแกรม GUI สมัยใหม่
Search in TTT
### การผสานรวมกับ Git
TTT มีแผง Changes สำหรับจัดการ Git โดยเฉพาะ ไม่ว่าจะเป็นการ stage, commit, pull หรือ push โดยไม่ต้องกลับไปที่ command line มาพร้อมตัวแสดงความต่าง (diff viewer) ที่ผสานรวมกับ syntax highlighting ช่วยให้การตรวจสอบโค้ดทำได้ง่ายขึ้น รวมถึงมีตัวบ่งชี้ Git gutter และข้อมูล inline blame ให้ใช้งานครบถ้วน
Git Integration
### เทอร์มินัลในตัว (Integrated Terminal)
แม้จะเป็นโปรแกรมบนเทอร์มินัล แต่ TTT ก็มีเทอร์มินัลในตัวอีกชั้นหนึ่งเพื่อเพิ่มความสะดวกในการรันคำสั่งโดยไม่ต้องสลับหน้าจอ
เทอร์มินัลในตัวนี้เป็นตัวจำลองเทอร์มินัลที่สมบูรณ์ รองรับหลายแท็บ การแสดงผลสีแบบ true-color และการสลับโหมดเต็มหน้าจอผ่านทางลัดคีย์บอร์ด ช่วยให้ทำงานได้อย่างต่อเนื่องโดยไม่ต้องออกจากโปรแกรมแก้ไข
Integrated Terminal
### ปลั๊กอิน
TTT รองรับปลั๊กอินที่เขียนด้วยภาษา Lua เพื่อเพิ่มคำสั่งหรือแผงควบคุมใหม่ๆ โดยปลั๊กอินจะทำงานในสภาพแวดล้อม sandboxed เพื่อความปลอดภัยและต้องได้รับอนุญาตก่อนใช้งาน
คุณสามารถติดตั้งปลั๊กอินผ่านแผงควบคุมเฉพาะภายใน TUI ได้อย่างสะดวก โดยศึกษารายละเอียดเพิ่มเติมได้ที่ [เอกสารอย่างเป็นทางการ](https://github.com/eugenioenko/ttt/blob/main/docs-web/src/content/docs/guides/plugins.md?ref=itsfoss.com)
Plugins in TTT
### การเปลี่ยนธีม (Theming)
TTT มาพร้อมธีมยอดนิยมอย่าง Dracula และ Monokai โดยมีการแสดงตัวอย่างแบบสดในขณะเลือกใช้งาน นอกจากนี้ยังสามารถปรับแต่งอินเทอร์เฟซทุกส่วนผ่านไฟล์ JSON ได้ตามต้องการ
Themes in TTT
## บทสรุป
หลังจากได้ลองใช้ TTT ผมพบว่ามันให้ความรู้สึกเหมือนแอปพลิเคชัน GUI ที่อาศัยอยู่ในเทอร์มินัลมากกว่าจะเป็นโปรแกรม Terminal Text Editor แบบดั้งเดิม ซึ่ง TTT จงใจเบลอเส้นแบ่งระหว่าง TUI และ GUI เพื่อมอบความสะดวกสบายสูงสุด
แม้ผู้ใช้ Linux บางส่วนอาจชอบแอปพลิเคชันที่แยกความแตกต่างระหว่าง GUI และ TUI ให้ชัดเจน แต่สำหรับผู้ที่มองหาความสะดวกแบบสมัยใหม่ในหน้าต่างเทอร์มินัล TTT คือตัวเลือกที่คุ้มค่าแก่การลอง
นอกจาก TTT ยังมี [โปรแกรมแก้ไขบนเทอร์มินัลอื่นๆ ที่ใช้งานง่าย](https://itsfoss.com/fresh-terminal-text-editor/) และโปรแกรม [Edit ของ Microsoft](https://itsfoss.com/news/microsoft-edit/) ที่น่าสนใจ ซึ่งคุณสามารถเลือกใช้ตามความเหมาะสมของ workflow ได้เลยความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
