txt: Trình soạn thảo văn bản terminal nhanh, điều khiển bằng bàn phím cho kỹ sư

Công nghệ11 tháng 9, 2026·8 phút đọc

txt là trình soạn thảo văn bản terminal mã nguồn mở, được thiết kế để mở tức thì và thao tác hoàn toàn bằng bàn phím, không cần cấu hình phức tạp. Công cụ hỗ trợ tô sáng cú pháp qua tree-sitter, tích hợp Git, LSP cho hơn 15 ngôn ngữ lập trình và có thể cài đặt dễ dàng qua Homebrew, curl hoặc build từ mã nguồn Rust.

txt: Trình soạn thảo văn bản terminal nhanh, điều khiển bằng bàn phím cho kỹ sư

txt là một trình soạn thảo văn bản chạy trong terminal, được thiết kế dành riêng cho các kỹ sư phần mềm — những người dành phần lớn thời gian làm việc trong dòng lệnh. Điểm cốt lõi của công cụ này là tốc độ, sự đơn giản và khả năng điều khiển hoàn toàn bằng bàn phím, không cần cấu hình phức tạp hay học thuộc hệ thống modal.

Triết lý thiết kế: soạn thảo như suy nghĩ

Hầu hết các trình soạn thảo terminal hiện nay đều yêu cầu người dùng phải "nghi thức" trước khi có thể chỉnh sửa: cấu hình plugin, học hệ thống modal của Vim hay Emacs, hoặc vật lộn với một bộ thiết lập mất hàng giờ để chạy đúng. Ngược lại, các trình soạn thảo đồ họa (GUI) mạnh mẽ nhưng buộc người dùng phải rời tay khỏi bàn phím để với chuột mỗi khi sửa một tệp cấu hình hay một lỗi đánh máy.

Tác giả của txt — Erik Hellman — xây dựng công cụ này vì ông nhận thấy việc chuyển sang một công cụ khác chỉ để sửa nhanh vài dòng luôn tạo ra ma sát không đáng có.

"Nguyên tắc thiết kế đằng sau txt rất đơn giản: soạn thảo phải giống như suy nghĩ. Trình soạn thảo mở ra tức thì, các tổ hợp phím có thể đoán trước và dễ khám phá, con trỏ đáp xuống chính xác nơi bạn mong đợi."

txt không đặt mục tiêu thay thế IDE chính của bạn. Đây là công cụ bạn dùng khi chỉ cần sửa một thứ gì đó nhanh — và muốn ở lại trong terminal để làm việc đó.

Các tính năng nổi bật

txt sở hữu bộ tính năng được thiết kế để giữ cho luồng làm việc không bị ngắt quãng:

  • Tô sáng cú pháp qua tree-sitter cho nhiều ngôn ngữ: Rust, Python, JavaScript, TypeScript/TSX, Go, Java, Kotlin, C#, Groovy, Shell, HTML, CSS, JSON, YAML, TOML, Properties và Markdown (bao gồm cả khối mã nhúng)
  • Gấp mã (code folding) dựa trên tree-sitter, có cột gấp và nhãn "▸ N dòng"; Ctrl+Shift+[ để bật/tắt, Alt+0 / Alt+Shift+0 để gấp hoặc mở toàn bộ
  • Biểu tượng trong tệp hiện tạiCtrl+Shift+O mở bảng chọn mờ (fuzzy picker) cho mọi hàm, lớp và khai báo trong bộ đệm
  • Tiêu đề phạm vi cố định (sticky scope header) — hàm, lớp hoặc module bao quanh luôn được ghim ở đầu khung soạn thảo khi cuộn
  • Tích hợp Git — hiển thị dòng thêm/sửa/xóa ngay ở lề, nhánh hiện tại trên thanh trạng thái và hộp thoại thao tác tích hợp (Ctrl+Shift+G) để stage, commit, push và pull
  • Bảng chọn tệp mờ giúp điều hướng nhanh trong các dự án lớn
  • Soạn thảo đa con trỏ — thêm con trỏ lên trên hoặc xuống dưới bằng Alt+Shift+Up/Down
  • Chọn theo AST — mở rộng và thu hẹp vùng chọn theo cây cú pháp
  • Language Server Protocol (LSP) — gợi ý hoàn thành mã, tài liệu khi rê chuột, đi tới định nghĩa và tìm tham chiếu, có cơ chế xác nhận tin cậy trước khi chạy bất kỳ binary LSP nào
  • Snippet theo kiểu TextMate với điểm dừng tab, nạp theo từng ngôn ngữ từ ~/.config/txt/snippets/*.toml
  • Macro bàn phím — ghi lại chuỗi thao tác vào các khe đặt tên a–z (Ctrl+Shift+R) và phát lại trong một bước hoàn tác duy nhất (Ctrl+Alt+R)
  • Đánh dấu và danh sách nhảy — đặt mark theo tên trên toàn workspace bằng Ctrl+M rồi a–z, nhảy lại bằng Ctrl+', duyệt lịch sử bằng Alt+Left / Alt+Right
  • Định dạng mã — quy tắc thụt lề trực tiếp khi gõ và định dạng một phím qua các công cụ bên ngoài như rustfmt, prettier
  • Hỗ trợ .editorconfig — tự động nhận kiểu thụt lề, độ rộng, ký tự xuống dòng, dòng trống cuối tệp và cắt khoảng trắng thừa
  • Thanh bên quản lý tệp với đầy đủ thao tác tạo, đổi tên, xóa, di chuyển; ẩn .git và thư mục ẩn theo mặc định
  • Hỗ trợ chuột — nhấp tab để chuyển, nhấp đôi để chọn từ, cuộn ngang bằng con lăn chuột và cuộn dọc tự do qua con trỏ
  • Tùy chỉnh phím tắt — có thể dùng preset cho VS Code hoặc IntelliJ IDEA từ giao diện cài đặt, hoặc tự viết tệp ~/.config/txt/keybindings.toml
  • Theo dõi tệp — tự động tải lại tệp khi bị công cụ bên ngoài thay đổi

Cách cài đặt

txt hỗ trợ nhiều phương thức cài đặt tùy theo hệ điều hành:

Homebrew (macOS và Linux):

brew tap ErikHellman/tap
brew install txt

Cập nhật sau này bằng lệnh brew upgrade txt.

macOS và Linux qua curl:

curl -fsSL https://raw.githubusercontent.com/ErikHellman/txt/main/install.sh | sh

Lệnh này cài binary bản phát hành mới nhất vào ~/.local/bin. Hãy đảm bảo thư mục đó nằm trong biến môi trường PATH. Chạy lại lệnh tương tự để cập nhật.

Windows (PowerShell):

irm https://raw.githubusercontent.com/ErikHellman/txt/main/install.ps1 | iex

Lệnh này cài vào %LOCALAPPDATA%\txt và tự động thêm vào PATH.

Build từ mã nguồn (yêu cầu Rust 1.88 trở lên):

git clone https://github.com/ErikHellman/txt.git
cd txt
cargo build --release

Binary sẽ nằm tại ./target/release/txt. Bạn có thể sao chép nó vào bất kỳ đâu trong PATH.

Cách sử dụng và phím tắt

Để mở một tệp hoặc thư mục:

txt file.txt
txt .

Khi mở một thư mục, thanh bên quản lý tệp sẽ tự động xuất hiện. Nhấn F1 bất cứ lúc nào để xem danh sách đầy đủ các phím tắt.

Một số phím tắt quan trọng:

  • Ctrl+S — Lưu tệp
  • Ctrl+Q — Thoát
  • Ctrl+P — Bảng chọn tệp mờ
  • Ctrl+Shift+O — Biểu tượng trong tệp hiện tại
  • Ctrl+Shift+P — Bảng lệnh (command palette)
  • Ctrl+F — Tìm kiếm
  • Ctrl+H — Tìm và thay thế
  • Ctrl+W — Mở rộng vùng chọn tới nút AST bao quanh
  • Ctrl+Shift+W — Thu hẹp vùng chọn
  • Alt+Shift+Up/Down — Thêm con trỏ lên trên / xuống dưới
  • Alt+M — Nhảy tới dấu ngoặc khớp
  • Ctrl+Z — Hoàn tác
  • Ctrl+Y hoặc Ctrl+Shift+Z — Làm lại
  • Ctrl+Shift+G — Hộp thoại thao tác Git
  • Ctrl+L — Cấu hình máy chủ LSP
  • Ctrl+, — Mở cài đặt
  • F1 — Hiển thị toàn bộ phím tắt

Bản đồ phím mặc định của txt được thiết kế theo phong cách quen thuộc. Người dùng có thể chọn preset VS Code hoặc IntelliJ IDEA từ giao diện cài đặt, hoặc ghi đè từng phím tắt riêng lẻ.

Cấu hình máy chủ LSP

LSP được cấu hình theo từng workspace và là tính năng tùy chọn (opt-in). Cách nhanh nhất để bắt đầu là dùng bảng chọn LSP (Ctrl+L), chọn ngôn ngữ và txt sẽ tự ghi lựa chọn vào tệp .txt/lsp.toml.

Điểm quan trọng cần lưu ý: txt không tự tải máy chủ ngôn ngữ. Bạn phải cài binary từ dự án gốc trước, và lần đầu binary được khởi chạy, txt sẽ hỏi bạn có tin cậy hay không. Mã SHA-256 của các binary đã được phê duyệt được lưu trong ~/.config/txt/trusted_binaries.json; nếu binary thay đổi, txt sẽ hỏi lại.

Các preset có sẵn bao gồm:

  • Rust — rust-analyzer
  • Go — gopls
  • TypeScript / JavaScript — typescript-language-server
  • Kotlin — kotlin-lsp
  • Java — Eclipse JDT Language Server (jdtls)
  • C# — OmniSharp
  • C/C++ — clangd
  • Python — pyright
  • Lua — lua-language-server
  • Zig — zls

Đối với các cấu hình nâng cao như truyền thêm tham số, chỉ định binary tùy chỉnh hoặc cung cấp initializationOptions, bạn có thể chỉnh sửa trực tiếp tệp .txt/lsp.toml.

Giấy phép và đóng góp

txt được phát hành theo giấy phép kép MITApache 2.0 — người dùng có thể chọn một trong hai.

Nếu phát hiện lỗi hoặc có ý tưởng tính năng mới, bạn có thể mở issue trên GitHub tại github.com/ErikHellman/txt/issues. Khi báo lỗi, hãy kèm theo hệ điều hành, phiên bản txt (chạy txt --version) và các bước tái hiện vấn đề.

Góc nhìn cho lập trình viên Việt Nam

Đối với các lập trình viên Việt Nam thường xuyên làm việc qua SSH trên máy chủ từ xa hoặc trong môi trường container, việc có một trình soạn thảo terminal nhẹ, mở tức thì và hỗ trợ LSP đầy đủ là một lợi thế đáng kể. txt có thể là lựa chọn thay thế hợp lý cho nano (quá hạn chế) hoặc Vim (đường cong học tập dốc) trong các tình huống sửa nhanh tệp cấu hình, chỉnh sửa script triển khai hay làm việc trực tiếp trên VPS.

Công cụ này đặc biệt hữu ích với các nhóm phát triển sử dụng Rust hoặc Go — hai ngôn ngữ đang ngày càng phổ biến trong cộng đồng backend Việt Nam — nhờ khả năng tích hợp sẵn các máy chủ ngôn ngữ mạnh mẽ như rust-analyzer và gopls.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗