Thực tế khi làm việc với Terminal
Hãy tưởng tượng thế này: bạn đang SSH vào một node từ xa qua kết nối có độ trễ 150ms. Không có GUI, và giao diện duy nhất của bạn là một con trỏ nhấp nháy. Trong môi trường này, Vim không chỉ là một trình soạn thảo—nó là giao diện chính để bạn hoàn thành công việc. Tôi đã dành hơn một thập kỷ quản lý các cụm máy chủ, và tôi có thể khẳng định rằng khoảng cách giữa một admin tập sự và một chuyên gia thường thể hiện qua cách họ xử lý file cấu hình dưới áp lực.
Trên một máy chủ Ubuntu production chạy với tài nguyên hạn hẹp—chẳng hạn như 2GB RAM và chỉ số CPU steal cao—Vim vẫn hoạt động cực kỳ mượt mà. Tôi từng phải kiểm tra một file log Nginx dung lượng 500MB trong khi hệ thống đang bị tấn công DDoS. Trong khi các công cụ khác có thể bị treo hoặc làm hỏng shell, tính năng tìm kiếm gốc của Vim cho phép tôi xác định chính xác các địa chỉ IP độc hại chỉ trong khoảng 30 giây. Việc giữ tay trên bàn phím giúp bạn duy trì sự tập trung cao độ khi mọi thứ trở nên tồi tệ.
Bộ công cụ ‘Cần sửa ngay lập tức’
Vim hoạt động theo các chế độ (modal), đây là rào cản lớn nhất đối với người mới bắt đầu. Nó không giống như Notepad. Bạn bắt đầu ở Normal Mode. Ở chế độ này, các phím không dùng để gõ chữ; chúng thực hiện các lệnh. Cảm giác sẽ hơi lạ lẫm trong giờ đầu tiên, nhưng đó là chìa khóa để chỉnh sửa tốc độ cao.
1. Ba chế độ thiết yếu
- Normal Mode: Chế độ mặc định. Sử dụng để điều hướng và xóa. Nhấn
Escđể quay lại đây. - Insert Mode: Nơi bạn thực sự gõ văn bản. Nhấn
iđể bắt đầu chèn văn bản. - Command Mode: Dành cho các hành động cấp hệ thống như lưu file. Gõ
:từ Normal Mode.
2. Cách thoát (Mà không hoảng loạn)
Tất cả chúng ta đều đã từng rơi vào tình cảnh bị kẹt trong một file mà không biết cách đóng. Hãy ghi nhớ ba lệnh này để giữ bình tĩnh:
:q! # Thoát cưỡng bức và hủy bỏ mọi thay đổi
:wq # Lưu thay đổi và thoát
:x # Cách của dân chuyên nghiệp: chỉ lưu và thoát nếu có thay đổi
3. Điều hướng không cần phím mũi tên
Việc với tay tới các phím mũi tên khiến tay bạn rời khỏi hàng phím chính (home row), điều này làm chậm tốc độ của bạn. Hãy sử dụng các phím sau để thay thế:
h: Sang tráij: Xuống dướik: Lên trênl: Sang phải
Di chuyển với tốc độ thực chiến
Hiệu quả thực sự bắt đầu khi bạn ngừng tư duy theo từng ký tự và bắt đầu tư duy theo các khối dữ liệu. Nếu bạn đang chỉnh sửa một file sshd_config dài 2.000 dòng, việc cuộn chuột là một sự lãng phí thời gian. Bạn cần phải nhảy.
Nhảy theo từ và dòng
Thay vì nhấn phím l liên tục để đi đến cuối dòng, hãy sử dụng các phím tắt này để nhảy vọt qua file:
w: Nhảy đến word (từ) tiếp theo.b: Nhảy ngược lại (back) một từ.0: Nhảy về đầu dòng chính xác.$: Nhảy đến cuối dòng.gg: Di chuyển tức thời lên đầu file.G: Di chuyển tức thời xuống cuối file.:45: Đi thẳng đến dòng số 45.
Chỉnh sửa với độ chính xác cao
Các lệnh của Vim tuân theo logic “động từ + danh từ”. Nếu d là delete (xóa) và w là word (từ), thì dw sẽ xóa một từ. Đơn giản vậy thôi.
x # Xóa ký tự ngay tại con trỏ
dd # Xóa (cắt) toàn bộ dòng
yy # Sao chép (copy) toàn bộ dòng
p # Dán vào bên dưới con trỏ
u # Hoàn tác (phím quan trọng nhất)
Ctrl + r # Làm lại (Redo)
Tuyệt chiêu cho Sysadmin
Đây là lúc Vim chuyển mình từ một trình soạn thảo đơn giản thành một công cụ tự động hóa. Các admin thường cần thay đổi địa chỉ IP hoặc vô hiệu hóa (comment) toàn bộ các khối quy tắc tường lửa. Làm việc này thủ công rất dễ dẫn đến sai sót.
Tìm kiếm và thay thế trong toàn bộ file
Tôi sử dụng lệnh thay thế liên tục để cập nhật các dải IP nội bộ. Cú pháp là :%s/cũ/mới/g.
# Thay đổi tất cả các mục 192.168.1.10 thành 10.0.0.50
:%s/192.168.1.10/10.0.0.50/g
# Thêm 'c' ở cuối để xác nhận từng thay đổi một cách thủ công
:%s/old/new/gc
Chỉnh sửa hàng loạt với Visual Block Mode
Cần vô hiệu hóa 50 dòng cấu hình? Đừng gõ dấu # năm mươi lần. Hãy sử dụng chế độ Visual Block:
- Đặt con trỏ ở đầu dòng đầu tiên.
- Nhấn
Ctrl + v. - Di chuyển xuống (
j) để bôi đen cột đầu tiên của cả 50 dòng. - Nhấn
Shift + ivà gõ#. - Nhấn
Esc. Hãy xem Vim tự động thêm dấu comment vào mọi dòng cùng một lúc.
Quản lý nhiều file
Bạn không cần phải mở năm tab terminal khác nhau. Bạn có thể chia màn hình ngay trong Vim để so sánh các phiên bản php.ini hoặc sao chép-dán giữa các file cấu hình.
:sp /etc/hosts # Chia màn hình theo chiều ngang
:vsp /etc/hosts # Chia màn hình theo chiều dọc
Ctrl + w + w # Chuyển đổi giữa các cửa sổ
Những kinh nghiệm xương máu từ thực tế
Sau nhiều năm quản lý các hệ thống Linux, tôi nhận thấy rằng một vài tinh chỉnh cấu hình nhỏ có thể tiết kiệm hàng giờ bực bội. Đây là những cài đặt tôi luôn áp dụng trên mọi máy chủ mới mà mình chạm vào.
1. File .vimrc thiết yếu
Hãy tạo một file ~/.vimrc. Nó khiến Vim hoạt động như một công cụ hiện đại thay vì một di vật từ những năm 70. Đây là cấu hình ưa thích của tôi:
set number " Hiển thị số dòng (thiết yếu để debug)
syntax on " Bật phối màu cú pháp
set tabstop=4 " Tiêu chuẩn hóa khoảng cách tab
set expandtab " Chuyển đổi tab thành khoảng trắng (ngăn lỗi YAML)
set ic " Tìm kiếm không phân biệt chữ hoa chữ thường
2. Mẹo lưu file bằng ‘Sudo’
Tất cả chúng ta đều đã từng dành 15 phút để tinh chỉnh hoàn hảo một file cấu hình, chỉ để nhận ra rằng mình quên dùng sudo. Thay vì để mất công sức đó, hãy chạy lệnh này trong Command Mode:
:w !sudo tee %
Lệnh này sẽ truyền (pipe) bộ đệm vào lệnh tee với quyền root, giúp lưu file ngay cả khi bạn mở nó bằng tài khoản người dùng bình thường.
3. Truyền dữ liệu vào Vim
Khi grep hoặc journalctl trả về quá nhiều dữ liệu để đọc, hãy truyền nó vào Vim. Điều này cho phép bạn sử dụng các công cụ tìm kiếm và điều hướng vượt trội của Vim trên kết quả đầu ra của lệnh:
journalctl -u nginx --since "1 hour ago" | vim -
Lời kết
Vim nổi tiếng là khó học, nhưng bạn không cần phải biết 100% về nó để làm việc hiệu quả. Hãy bắt đầu với các phím điều hướng trong một tuần. Khi ngón tay của bạn đã quen với h, j, k, l, hãy học thêm một mẹo mới sau mỗi vài ngày. Chẳng bao lâu sau, bạn sẽ xử lý các file cấu hình chỉ trong vài giây, biến những ca xử lý sự cố production căng thẳng trở nên nhẹ nhàng như một ngày làm việc bình thường.

