Phần 3. Các thao tác hỗ trợ
1. Paste từ buffer
- Các thao tác chỉnh sửa trong vim chưa được lưu ngay vào file vât lý, ngay cả lệnh xóa dòng hay từ
- Để paste nội dung từ bộ đệm vào phía sau vị trí con trỏ hiện thời sử dụng lệnh p,
- Paste vào phía trước vị trí con trỏ hiện thời sử dụng P
2. thao tác replace :
- để thay ký tự hiện thời bằng ký tự c nào đó sử dụng lệnh r cộng thêm ký tự c. Ví dụ muốn thay đổi ký tự hiện thời thành t thì dùng : rt
Phần 4. Một số thao tác nâng cao với vim
1. duyệt nâng cao:
Với một số file có hàng ngàn dòng, việc sử dụng các phím di chuyển h,j,k,l không phải là lựa chọn tốt.
- lệnh g là một lựa chọn tốt trong trường hợp này
- di chuyển xuống cuối file: lệnh G
- di chuyển về đầu file: lệnh gg hoặc 1G
- di chuyển tới dòng thứ n : lệnh nG
- nếu không chắc về số dòng, sử dụng CTRL + g để có thông tin về file
2. tìm kiếm trong file:
Cách tìm kiếm đơn giản: dùng lệnh / hoặc ?
- lệnh / cho phép tìm kiếm từ vị trí con trỏ trở đi, ví dụ muốn tìm cụm từ key, dùng lệnh /key
- lệnh ? cho phép tìm kiếm từ vị trí con trỏ trở về trước, ví dụ ?key
- duyệt tới kết quả tiếp theo của các phép tìm kiếm, ấn phím n (next), duyệt tới kết quả phía trước ấn phím N
3. Thay thế từ trong vim (replace or Substitution)
Với yêu cầu thay thế một mẫu trong toàn bộ văn bản hoặc trong một phạm vi nào đó, vim có thể cung cấp khả năng này.
- ví dụ, để thay thế kết quả đầu tiên tìm được của từ wordA trên dòng hiện thời thành từ wordB, có thể dùng lệnh như sau:
- :s/wordA/wordB/
- Nếu có nhiều từ cần thay thễ xuất hiện trong dòng, bạn sử dụng :s/wordA/wordB/g
- Nếu muốn thay thế toàn bộ các từ xuất hiện trên vản bản, bạn sử dụng lệnh :%s/wordA/wordB/g
- Nếu bạn muốn thay thế từ đầu tiên xuất hiện trong khoảng từ dòng 20 đến dòng 40, bạn có thể sử dụng lệnh :20,40s/wordA/wordB/
- Để thay thế tất cả các từ xuất hiện trong khoảng dòng 20 đến 40 thì dùng lệnh :20,40s/wordA/wordB/g
4. Thực thi một lệnh shell trong vim
để thực thi một lệnh shell, chuyển về chế độ dòng lệnh, thêm :! vào trước lệnh cần chạy. Ví dụ, nếu muốn chạy lệnh date, gõ :!date
5. Các tùy chọn khác khi ghi một file : dùng lệnh :w ở chế độ dòng lệnh cho phép ghi file mà không cần thoát khỏi vim.
6. Lưu một đoạn text được lựa chọn vào một file khác:
- phục vụ mục đích muốn sao chép một đoạn text từ file hiện thời đang duyệt, mà không cần thoát khỏi file đó.
- chuyển sang chế độ dòng lệnh
- chuyển từ chế độ dòng lệnh sang chế độ visual bằng cách nhấn v
- dùng các phím di chuyển để highlight đoạn văn bản cần chọn
- nhấn : , khi đó sẽ hiện ra cụm ký tự :'<,'>
- nhập lệnh w ten_file_moi để lưu vào file mới
7. Chèn nẩng cao với toán tử o
bình thường, việc sử dụng i/insert để chuyển sang chế độ chỉnh sửa là tương đối đơn giản, tuy nhiên, vim cũng cung cấp một công cụ khác tiện lợi hơn nữa. Đó là toán tử o.
- để chèn thêm dòng vào sau vị trí con trỏ hiện thời, nhấn o
- để chèn thêm dòng vào trước vị trí con trỏ hiện thời, nhấn O
- sau mỗi câu lệnh trên, vim tự động chuyển sang chế độ chỉnh sửa
8. Copy và Paste
- sử dụng lệnh y (yank) để copy đoạn text cần, dùng p để paste nó lên vị trí con trỏ
- để copy nguyên 1 dòng, tại vị trí con trỏ, nhấn y
- để copy k dòng tính từ vị trí con trỏ, nhấn ky. Ví dụ muốn copy dòng 8 đến 10 nhấn 3y
- để copy một đoạn bất kỳ, chuyển sang chế độ visual, chọn đoạn text và nhấn y để copy.
Phần cuối - thay lời kết:
Hiện tại các trình xử lý text của unix/linux đã rất nhiều, nhưng có một số điểm tương đồng mà chúng ta cần quan tâm, đó là việc xây dựng và sử dụng thành thạo Biểu thức chính quy (Regular Expression - Regex). Vấn đề này thực sự rất thú vị, nó cũng là nhân tố đem lại sức mạnh cho các trình xử lý text của *nix, tôi sẽ cùng các bạn tìm hiểu trong một thời gian gần tới.
Các bạn có thể thử nghiệm các nội dung chúng ta đã cùng tìm hiểu, trên ubuntu, có khá nhiều phiên bản vim, hãy làm quen với vim thay vì gvim;
Để cài đặt vim, dùng lệnh:
#sudo apt-get install vim
[...] navigation ← Previous Post Làm chủ Vim trong Linux (Phần 2) → Mar 15 [...]
ReplyDelete