Chi Tiết Về Lệnh Soạn Thảo Vi Trong Linux
Lệnh soạn thảo vi là một lệnh phổ biến nhất mà người quản trị linux nào cũng biết nhưng không phải ai cũng hiểu và biết hết các ứng dụng của nó. Trong bài viết này mình sẽ hướng dẫn các bạn từ cơ bản đến nâng cao của lệnh vi.
cách sử dụng: vi /duong-dan-file/abc.txt
có 2 chế độ chính là insert mode và command mode. Mặc định sau khi vào chương trình vi sẽ ở chế độ command mode, để chuyển qua chế độ insert bạn bạn bấm phím “i”, để chuyển về chế độ command bạn bấm phím “esc” trong nhiều trường hợp phải bấm “shift + esc” mới được.
1.Cách Sử Dụng Lệnh Cơ Bản
Bạn dùng các phím di chuyển để di chuyển con trỏ đến vị trí cần chỉnh sửa
“x” để xóa một ký tự, “dw” để xóa một chữ, “dd” để xóa một dòng ngay tại vị trí con trỏ
Để lặp lại nhiều lần một thao tác ta thêm số lần trước lệnh cần thực hiện. ví dụ: 3dw sẽ xóa 3 từ liên tiếp tính từ vị trí hiện tại
Phím “u” khôi phục lại thao tác vừa mới thực hiện
Phím “shift + zz” hoặc “:wq” lưu lại tất cả thay đổi và thoát.
lệnh :q! thoát ra không lưu lại bất kỳ thay đổi nào.
Chú ý: tất cả các lệnh trên đang thực hiện ở chế độ command mode.
2. Cắt Và Dán
lệnh “yy” dùng để sao chép 1 dòng ngay tại vị trí hiện tại, nếu bạn muốn lưu nhiều dòng tính từ vị trí con trỏ thì bạn thêm số dòng bạn muốn vào, ví dụ: 3yy là copy 3 dòng liên tiếp.
đế dán dữ liệu chúng ta vừa mới copy xong dùng lệnh “p”
3. Di Chuyển
Để di chuyển đến số dòng mong muốn ta chỉ cần điền số dòng muốn đến, có thể thêm lệnh g hoặc không có đều được.
Lưu ý: để xem số thứ tự của dòng dùng lệnh :set number
Để di chuyển đến số ký tự tại hàng đang đứng ta dùng lệnh nl ( n: số ký tự cần muốn đến )
4. Lặp Lại Thao Tác Gần Nhất
ví dụ: sau khi thêm dòng chữ vpsgiare ta chuyển qua chế độ command mode bấm dấu “.” thì chữ vpsgiare sẽ được thêm một lần nữa vào trong văn bản
5. Tìm Kiếm
dùng “?” để tìm kiếm từ ta cần tìm, vd: ?vpsgiare, ta đang tìm từ khóa là vps gia re sau khi nhấn enter nó sẽ đưa bạn đến vị trí có từ khóa.
dùng phím “n” để đến vị trí chứa từ khóa phù hợp tiếp theo sau con trỏ, phím “N” tới từ khóa phù hợp tiếp theo trước con trỏ.
6. Các lệnh sau dấu :
:%s/vps/re/g tìm kiếm chữ “vps” trong toàn bộ file và thay thế bằng “re”, /vps/re/g chỉ thay thế ở dòng hiện tại.
– et nu hiển thị số dòng trước mỗi dòng, et nonu để bỏ hiển thị số dòng.
– :1,8d dùng để xóa nhiều dòng, cụ thể ở đây là xóa từ dòng số 1 đến dòng số 8
– Sử dụng ma để đánh dấu dòng hiện tại là a ( có thể là bất cứ ký tự nào từ a-z ). Sau đó dùng ‘a để nhảy đến dòng đã được dánh dấu là a từ bất cứ đâu. Có thể sử dụng với colon, :’a,’b d xóa tất cả các dòng bắt đầu từ dòng được đánh dấu là a cho đến dòng được đánh dấu là b, hoặc ngược lại.
– :w newfile.txt dùng để lưu file hiện tại thành một file mới với tên là newfile.txt ( tựa “save as” bên Win Word ).
– :8,16 co 32 dùng để sao chép nội dung từ dòng số 8 đến dòng số 16 và dán nó dưới dòng 32.
– :3,16 m 32 để chuyển rời dòng 8 đến 16 đến điểm sau dòng 32.
– Nếu dùng vi để mở nhiều file ( vi file1 file2 file3 ), có thể sử dụng :n để nhảy đến file tiếp theo và :rew để nhảy quay ngược lại đến file đầu tiên, :args để hiện thị tất cả các file đang được mở.
7. Vi for Smarties
Dùng phím ‘G’ để di chuyển đến dòng cuối cùng của file.
Khi xóa nhiều dòng, di chuyển con chuột đến dòng đầu tiên, gõ ma để đánh dấu, sau di đến dòng cuối cùng và gõ d’a để xóa những dòng đó.
Có một cách khác để xóa nhiều dòng một cách chủ động hơn. Bạn di chuyển tới dòng đầu tiên cần xóa sau đó đánh dấu bằng “ma”, sau đó di chuyển đến dòng cuối cùng cần xóa và gõ “d’a” để xóa các dòng đó.
$ di chuyển đến vị trí cuối cùng của dòng
0 dùng để di chuyển đến vị trí đầu tiên của dòng
d$ xóa từ vị trí con trỏ hiện tại đến cuối dòng
:10,$ d xóa từ dòng 10 cho đến dòng cuối cùng của file, hoặc ngược lại.
:10,20 m 0 chuyển rời dòng 10 đến 20 lên trên dòng đầu tiên của file.
8. Command SHELL
Để sử dụng được lệnh shell trong môi trường vi bạn dùng câu lệnh :!command ( command là lệnh bạn cần thực hiện ). Đây là câu lệnh khá hữu ích khi bạn cần thông tin bên ngoài để đưa vào nội dung của file đang soạn thảo
Các bạn nào có câu lệnh nào hay trong vi command bên dưới nhé !