Học sử dụng Vim: Hướng dẫn cơ bản cho lập trình viên mới bắt đầu

✍️ Trần Minh Trí (Chuyên gia AI & Lập trình)
⏱️ 6 phút đọcBeginner
#vim #editor #lap trinh #linux #terminal
Học sử dụng Vim: Hướng dẫn cơ bản cho lập trình viên mới bắt đầu

1. Vim là gì và tại sao nên học?

Vim là trình soạn thảo văn bản mạnh mẽ có từ năm 1991, được cài sẵn trên hầu hết hệ thống Linux và macOS. Khác với editor thông thường, Vim hoạt động với các mode (chế độ): bạn không thể gõ chữ ngay khi mở file.

Tại sao nên học Vim: - Tốc độ: Mọi thao tác đều qua bàn phím: không cần chuột. Một số lập trình viên đạt 100+ từ/phút khi edit.

  • Phổ biến: Có trên mọi hệ thống Unix. Khi SSH vào server, Vim là editor duy nhất chắc chắn có sẵn.
  • Nhẹ: Khởi động dưới 0.5 giây, dùng được trên máy cấu hình thấp nhất.
  • Plugin: Hệ sinh thái plugin khổng lồ cho mọi ngôn ngữ lập trình.
📝NOTE
Vim có đường cong học tập dốc: tuần đầu tiên sẽ rất khó chịu. Nhưng nếu kiên trì 2 tuần, tốc độ soạn thảo của bạn sẽ tăng gấp đôi.

2. Các mode cơ bản trong Vim

Vim có 4 mode chính:

  • Normal mode (mặc định): Phím tắt di chuyển, xóa, copy, paste. Nhấn Esc để về mode này từ bất kỳ mode nào.
  • Insert mode: Gõ chữ như editor thường. Nhấn i (insert trước con trỏ), a (insert sau con trỏ), o (thêm dòng mới).
  • Visual mode: Chọn văn bản. Nhấn v (chọn ký tự), V (chọn dòng), Ctrl+v (chọn cột/block).
  • Command mode: Gõ lệnh. Nhấn : từ Normal mode.

Cách bắt đầu mở file: vim ten-file.txt.

Thoát: :q (quit), :wq (save và quit), :q! (quit không save).

Thoát khi không biết làm gì: Esc:q! → Enter.

💡TIP
Câu thần chú cho người mới: Esc +:q! là cách thoát Vim an toàn nhất. Nếu bị kẹt không thoát được, nhấn Esc vài lần rồi gõ :q!.

3. Di chuyển trong Vim (Navigation)

Di chuyển con trỏ bằng phím chữ (không dùng mũi tên):

  • h: trái.
  • j: xuống.
  • k: lên.
  • l: phải.

Di chuyển nhanh: - w: nhảy đến đầu từ tiếp theo.

  • b: lùi về đầu từ trước.
  • 0: đầu dòng.
  • $: cuối dòng.
  • gg: đầu file.
  • G: cuối file.
  • Ctrl+d: xuống nửa trang.
  • Ctrl+u: lên nửa trang.
  • :42: đến dòng số 42.
💡TIP
Trong Vim, bạn có thể thêm số trước lệnh để lặp lại: 3w (nhảy 3 từ), 5j (xuống 5 dòng). Học các phím di chuyển trước: chúng là nền tảng của mọi thao tác.

4. Các thao tác chỉnh sửa cốt lõi

Xóa (Delete):

  • x: xóa 1 ký tự dưới con trỏ.
  • dd: xóa cả dòng.
  • dw: xóa từ hiện tại.
  • d$: xóa từ con trỏ đến cuối dòng.

Copy (Yank) và Paste:

  • yy: copy cả dòng.
  • yw: copy từ hiện tại.
  • p: paste sau con trỏ.
  • P: paste trước con trỏ.

Undo và Redo:

  • u: undo (hoàn tác).
  • Ctrl+r: redo (làm lại).

Tìm kiếm:

  • /tu-khoa: tìm xuôi. Nhấn n (next), N (previous).
  • ?tu-khoa: tìm ngược.
  • :%s/cu/moi/g: thay thế toàn bộ "cu" bằng "moi" trong file.
⚠️WARNING
Đừng cố nhớ tất cả lệnh cùng lúc. Học 5 lệnh mới mỗi ngày và dùng chúng đến khi thuộc lòng. Mất 2-4 tuần để các lệnh trở thành phản xạ tự nhiên.

5. Cấu hình Vim với.vimrc

File ~/.vimrc chứa cấu hình Vim của bạn.

Một số cài đặt cơ bản: ```

" Cơ bản

set number " Hiện số dòng

set relativenumber " Số dòng tương đối

set tabstop=4 " Tab = 4 spaces

set shiftwidth=4 " Indent = 4 spaces

set expandtab " Tab thành spaces

set autoindent " Tự động thụt dòng

set smartindent " Thụt dòng thông minh

" Giao diện

syntax on " Tô màu cú pháp

set background=dark " Nền tối

colorscheme desert " Chọn màu sắc

" Tiện lợi

set mouse=a " Hỗ trợ chuột

set hlsearch " Highlight kết quả tìm

set incsearch " Tìm khi đang gõ

set clipboard=unnamed " Copy ra hệ thống

```

Sau khi thêm cấu hình, lưu file và chạy :source ~/.vimrc hoặc mở lại Vim.

6. Plugin manager và plugin hữu ích

Quản lý plugin với vim-plug:

(1) Cài vim-plug: chạy lệnh từ trang github.com/junegunn/vim-plug.

(2) Thêm vào .vimrc:

```

call plug#begin()

Plug 'preservim/nerdtree' " File explorer

Plug 'vim-airline/vim-airline' " Status bar đẹp

Plug 'tpope/vim-fugitive' " Git integration

Plug 'neoclide/coc.nvim', {'branch': 'release'} " Autocomplete

Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " Fuzzy finder

Plug 'morhetz/gruvbox' " Color scheme

call plug#end()

```

(3) Mở Vim, chạy :PlugInstall: tự động cài tất cả.

Học Vim là đầu tư dài hạn cho tốc độ code. Tuần đầu khó, tháng đầu quen, sau 3 tháng bạn sẽ không muốn quay lại editor thường.

🙋 Câu hỏi thường gặp

Vim khác gì với VS Code?

VS Code là GUI editor có chuột, menu, extension phong phú. Vim là terminal editor, không có GUI mặc định, mọi thao tác qua bàn phím. Nhiều người dùng VS Code với Vim extension để có cả hai.

Có nên học Vim nếu không làm lập trình?

Không cần thiết. Vim dành cho người thường xuyên chỉnh sửa file trên terminal: lập trình viên, sysadmin, devops. Nếu bạn chỉ soạn thảo văn bản thông thường, các editor khác dễ học hơn.

Làm sao để thoát Vim khi bị kẹt?

Nhấn Esc nhiều lần để về Normal mode, gõ :q! và Enter. Nếu vẫn không được, nhấn Ctrl+c hoặc Ctrl+[ (tương đương Esc).

Cách cuối cùng: đóng terminal và mở lại.


Kiến thức liên quan