Tại sao phải đổi từ VS Code sang Neovim?
Câu hỏi mình nhận được nhiều nhất là: “VS Code đang dùng ngon, sao phải khổ sở học phím tắt Neovim?”. Sau 5 năm cày cuốc qua đủ loại Editor, câu trả lời của mình gói gọn trong: Sự tập trung tuyệt đối.
Thực tế tại một dự án Next.js với hơn 100 components, mình nhận ra việc rời tay khỏi bàn phím để dùng chuột chọn file khiến flow suy nghĩ bị ngắt quãng liên tục. Khi chuyển sang LazyVim, productivity tăng vọt. Neovim chỉ ngốn khoảng 60-80MB RAM, trong khi VS Code thường xuyên chiếm dụng từ 1GB đến 1.5GB cho cùng một project.
Các hướng tiếp cận để “độ” Neovim
Trước khi bắt tay vào cấu hình, bạn cần hiểu rõ các lựa chọn hiện có:
- Tự build (Vanilla Neovim): Bạn tự viết
init.lua, quản lý plugin bằnglazy.nvim. Cách này giúp bạn hiểu sâu hệ thống nhưng cực kỳ tốn thời gian. Mình từng mất 3 đêm trắng chỉ để làm cho LSP nhận diện đúng file config. - Dùng bản phân phối (Distros): Như NvChad, AstroNvim hay LazyVim. Đây là những bộ khung đã được tối ưu sẵn, cài là dùng ngay.
Tại sao LazyVim lại là lựa chọn số 1?
Sau khi trải nghiệm NvChad (nhanh nhưng khó tùy biến) và AstroNvim (hơi rườm rà), mình chọn dừng chân ở LazyVim. Điểm ăn tiền nhất chính là cấu trúc modular. Nhờ cơ chế lazy-loading, các plugin chỉ thực sự load khi cần thiết. Kết quả là thời gian khởi động (startup time) luôn duy trì ở mức dưới 50ms.
Triển khai: Biến Neovim thành cỗ máy lập trình
1. Chuẩn bị môi trường
Bạn cần cài đặt Neovim phiên bản 0.9.0 trở lên. Để giao diện không bị lỗi hiển thị, hãy cài một bộ Nerd Fonts. Mình ưu tiên dùng JetBrainsMono Nerd Font vì độ hiển thị rõ nét.
# Kiểm tra phiên bản hiện tại
nvim --version
2. Cài đặt LazyVim Starter
Chúng ta sẽ clone bản starter để có bộ khung chuẩn nhất. Đừng quên backup cấu hình cũ để tránh mất dữ liệu:
# Backup cấu hình cũ
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
# Clone LazyVim starter
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
Mở Neovim bằng lệnh nvim, hệ thống sẽ tự động tải các plugin. Cảm giác nhìn các package được cài đặt tự động với giao diện hiện đại không thua kém gì JetBrains thực sự rất phấn khích.
3. Quản lý LSP và Tooling với Mason
Mason là một trong những tính năng đáng giá nhất. Nó đóng vai trò như một “App Store” cho các Language Server (LSP), Linter và Formatter.
Chỉ cần gõ :Mason, bạn có thể cài ngay pyright cho Python, tsserver cho TypeScript hay gopls cho Go chỉ với một phím bấm. Thay vì phải cài thủ công từng binary vào OS, Mason quản lý mọi thứ tập trung trong thư mục nvim.
4. Phím tắt tối ưu workflow
Hệ thống phím tắt của LazyVim dựa trên phím <leader> (phím Space). Đây là những tổ hợp mình sử dụng liên tục để code nhanh hơn:
<space> f f: Tìm kiếm file tức thì qua Telescope.<space> s g: Tìm kiếm chuỗi văn bản trong toàn bộ project (Live grep).<space> e: Đóng/mở cây thư mục Neo-tree.K: Xem nhanh tài liệu (hover doc) của hàm hoặc biến.g d: Nhảy thẳng đến nơi định nghĩa code (Go to definition).
Cấu hình Extras cho từng ngôn ngữ
LazyVim hỗ trợ tính năng LazyExtras cực kỳ tiện lợi. Bạn không cần copy-paste hàng chục dòng code Lua phức tạp để setup môi trường cho Docker hay Rust nữa.
Gõ :LazyExtras, dùng phím x để kích hoạt các module như lang.typescript hoặc ui.edgy. Hệ thống sẽ tự động cấu hình format-on-save và auto-completion chuẩn chỉnh cho ngôn ngữ đó.
Tùy biến cá nhân để làm chủ công cụ
Để Neovim thực sự phục vụ mình, bạn nên chỉnh sửa file lua/config/options.lua. Một thiết lập không thể thiếu là relativenumber, giúp bạn tính toán khoảng cách dòng để nhảy code cực nhanh.
-- File: lua/config/options.lua
vim.opt.relativenumber = true -- Hiển thị số dòng tương đối
vim.opt.cursorline = true -- Highlight dòng đang đứng
Nếu bạn thường xuyên làm việc với Git, hãy tận dụng LazyGit tích hợp sẵn. Nhấn <space> g g, một giao diện quản lý Git mạnh mẽ sẽ hiện ra. Bạn có thể stage, commit hay giải quyết conflict mà không cần rời khỏi màn hình code.
Lời kết
Chuyển sang Neovim có thể khiến bạn chậm lại trong 1-2 tuần đầu để học thuộc phím tắt. Tuy nhiên, phần thưởng nhận lại là một workflow mượt mà, không phụ thuộc chuột và cực kỳ tiết kiệm tài nguyên. Hãy bắt đầu từ những cấu hình cơ bản, rồi dần dần xây dựng một môi trường làm việc mang đậm phong cách cá nhân của bạn.

