Nhu cầu học cách sử dụng các trình soạn thảo văn bản trong Linux là không thể tranh cãi, vì mỗi quản trị viên hệ thống đều giao tiếp với các tệp cấu hình (văn bản thuần) hàng ngày, và hầu hết lúc này được thực hiện chỉ sử dụng một hoặc nhiều công cụ từ giao diện dòng lệnh (như nano, vim hoặc emacs).
Mặc dù nano có thể phù hợp hơn cho người dùng mới, vim hoặc emacs là công cụ được lựa chọn của người dùng có kinh nghiệm hơn do khả năng nâng cao của chúng.
Nhưng còn một lý do khác nữa tại sao việc học cách sử dụng một trong những trình soạn thảo văn bản này nên là ưu tiên hàng đầu đối với bạn: bạn có thể gặp phải một máy chủ chỉ hỗ trợ giao diện dòng lệnh hoặc gặp sự cố với trình quản lý desktop trên máy chủ hoặc máy tính Linux dựa trên giao diện đồ họa và nguồn tài nguyên duy nhất để kiểm tra và chỉnh sửa tệp cấu hình là dòng lệnh.
Giữa bài viết này và bài tiếp theo trong chuỗi bài viết 2 phần, chúng tôi sẽ xem xét 15 mẹo và thủ thuật để nâng cao kỹ năng vim của bạn. Được cho rằng bạn đã quen thuộc với trình soạn thảo văn bản này.
Nếu chưa quen, hãy làm một việc ích cho bản thân và làm quen với vim trước khi tiếp tục: bạn có thể tham khảo cách sử dụng trình soạn thảo văn bản vim để biết thêm thông tin chi tiết về bắt đầu với vim.
1. Truy cập Trợ giúp trực tuyến trong Vim
Sau khi bạn khởi động vim, nhấn F1 hoặc sử dụng :h trong chế độ ex để điều hướng đến Trợ giúp trực tuyến. Bạn có thể nhảy đến một phần hoặc chủ đề cụ thể bằng cách đặt con trỏ lên đó và sau đó nhấn Ctrl+] (Ctrl, sau đó dấu ngoặc vuông đóng).
Sau khi hoàn thành, nhấn Ctrl+t để trở lại màn hình trước đó. Hoặc bạn có thể tìm kiếm một chủ đề hoặc lệnh cụ thể với :h <chủ đề hoặc lệnh>.
Ví dụ,
:h x
sẽ hiển thị trợ giúp cho lệnh x (xóa), và
:h substitute
sẽ hiển thị trợ giúp về lệnh thay thế (mẹo cuối cùng trong bài viết này).
2. Thêm Đánh dấu trong Trình soạn thảo Vim
Nếu bạn đang chỉnh sửa một tệp lớn hơn một màn hình, bạn sẽ đánh giá cao tính năng được cung cấp bởi các điểm đánh dấu trong vim. Bạn có thể xem một điểm đánh dấu trong vim như một đánh dấu - sau khi bạn đặt nó ở một nơi nào đó, bạn có thể quay lại nhanh chóng và dễ dàng.
Giả sử bạn đang chỉnh sửa một tệp cấu hình 300 từ và vì một lý do nào đó bạn cần chuyển đổi liên tục giữa các dòng 30 và 150 ví dụ.
Đầu tiên, đi đến dòng #30 bằng cách nhập :30 trong chế độ ex, sau đó quay lại chế độ lệnh và nhấn ma (m, sau đó a) để tạo một điểm đánh dấu có tên 'a' ở dòng 30.
Sau đó, đi đến dòng 250 (với :250 trong chế độ ex) và nhấn `a (dấu nháy tấn công, sau đó a) để quay lại điểm đánh dấu 'a' ở dòng 30.
Bạn có thể sử dụng chữ in thường và in hoa để xác định các điểm đánh dấu trong vim (làm lại quá trình để tạo một điểm đánh dấu có tên 'A' ở dòng số 250).
Bạn có thể xem các điểm đánh dấu của mình với
:marks aA
Như bạn có thể thấy, mỗi điểm đánh dấu được tham chiếu bởi một vị trí dòng/cột cụ thể trên tệp, không chỉ dựa trên dòng.
3. Dễ dàng làm sạch mã trong Vim
Giả sử bạn đang chỉnh sửa một tập lệnh shell và nhận ra rằng nhà phát triển trước đã không tốt khi tạo thụt lề. Hãy xem cách bạn có thể sửa chữa với một số lệnh vim.
Đầu tiên, chọn một khối trực quan bằng cách đặt con trỏ ở đầu khối, sau đó nhấn Ctrl + v (Ctrl, sau đó v).
- Để đẩy lề sang trái: nhấn
- Để đẩy lề sang phải: nhấn
Sau đó nhấn nút . (dấu chấm) để lặp lại việc làm thụt lề. Khối được chọn sẽ được di chuyển sang phải hoặc sang trái chỉ với một phím bấm.
Một ví dụ cổ điển khác về việc sử dụng lệnh chấm là khi bạn cần xóa một loạt từ: đặt con trỏ trên từ đầu tiên bạn muốn xóa, sau đó nhấn dw.
Để tiếp tục xóa các từ tiếp theo, chỉ cần nhấn . (ngắn gọn và dễ dàng hơn việc lặp lại dw nhiều lần).
4. Chèn ký tự Unicode trong Vim
Nếu bố cục bàn phím của bạn không cho phép bạn dễ dàng chèn ký tự Unicode đặc biệt vào một tệp, hoặc nếu bạn thấy mình đứng trước một máy chủ với các thiết lập ngôn ngữ khác với những gì bạn quen thuộc, mẹo này sẽ hữu ích.
Để làm điều này, nhấn Ctrl + v trong chế độ chèn, sau đó là chữ u và mã thập lục phân của ký tự bạn muốn chèn.
Bạn có thể kiểm tra bảng Unicode để biết danh sách các ký tự đặc biệt và mã số tương ứng của chúng.
Ví dụ,
Ctrl+v theo sau bởi |
trả về |
u0040 |
@ |
u00B5 |
μ |
u20AC |
€ |
5. Kết hợp đầu ra lệnh ngoài vào Vim
Có những lúc bạn cần chèn đầu ra của các lệnh ngoài trực tiếp vào một tệp đang được chỉnh sửa bằng vim.
Ví dụ, tôi thường tạo một biến có tên DIR trong các tập lệnh của mình để lưu đường dẫn tuyệt đối đến thư mục chứa tập lệnh để sử dụng sau này trong tập lệnh.
Để làm điều đó, tôi sử dụng:
:r! pwd
trong chế độ ex. Như vậy, thư mục làm việc hiện tại được chèn vào đó.
Ví dụ khác: nếu bạn cần sử dụng cổng mặc định mạng ở một nơi nào đó trong tập lệnh, bạn có thể dễ dàng chèn nó vào tệp hiện tại mà không cần thoát vim như sau:
:!r ip route show | grep default | cut -f 3 -d " "
6. Gắn thêm nội dung tệp ngoài vào Vim
Nếu bạn cần gắn thêm nội dung của một tệp riêng lẻ vào tệp bạn đang chỉnh sửa, cú pháp tương tự như mẹo trước. Chỉ cần bỏ dấu chấm than và bạn đã sẵn sàng.
Ví dụ, để sao chép nội dung của /etc/passwd:
:r /etc/passwd
Bạn có thể thấy mẹo này hữu ích khi bạn cần sửa đổi các tệp cấu hình nhưng muốn giữ các tệp gốc để quay trở lại cài đặt "mặc định nhà máy" để nói.
7. Tìm kiếm và Thay thế một từ trong Vim
Một lần trong khi làm bài kiểm tra, tôi được yêu cầu mở một tệp văn bản lớn chứa dữ liệu ngẫu nhiên. Nhiệm vụ được giao bao gồm thay thế mỗi sự xuất hiện của từ Globe bằng từ Earth (đúng, tôi vẫn nhớ chính xác những từ).
Đối với những người quen thuộc với sed, điều này sẽ gợi nhớ - trong chế độ ex, gõ:
:%s/old/new/g
trong đó old là mẫu để tìm kiếm và new là chuỗi sẽ thay thế nó.
Trong trường hợp được mô tả ở trên, tôi đã sử dụng:
:%s/Globe/Earth/g
để hoàn thành công việc.
Vậy nếu bạn muốn được hỏi trước khi thay thế? Đơn giản. Chỉ cần thêm chữ c vào cuối lệnh trên, như sau:
:%s/old/new/gc
Các sự xuất hiện của mẫu sẽ được làm nổi bật và bạn sẽ được hỏi xem bạn có muốn thay thế nó bằng chuỗi mới:
:%s/gacanepa/me/gc
thì
- y: yes
- n: no
- a: thay thế tất cả
- q: thoát
- l: thay thế lần này và thoát
- ^E (Ctrl+E): Cuộn lên một màn hình
- ^Y (Ctrl+Y): Cuộn xuống một màn hình
Tóm tắt
Trong bài viết này, chúng tôi đã bắt đầu xem xét một số mẹo và thủ thuật vim để bổ sung vào kỹ năng chỉnh sửa văn bản của bạn. Bạn có thể nghĩ ra nhiều mẹo khác, vì vậy hãy chia sẻ chúng trong biểu mẫu bình luận dưới đây và tôi sẽ xem xét đề cập đến chúng trong bài viết kế tiếp và cuối cùng của loạt bài viết vim này.