Categories: Hỏi đáp

Tìm hiểu về ứng dụng Vi trong Linux

Đối với người dùng Linux thì Vi – ứng dụng soạn thảo, chỉnh sửa text chính là 1 trong những công cụ hỗ trợ không thể thiếu. Không giống như Nano – ứng dụng chỉnh sửa text dưới dạng Terminal, Vi có hệ thống các phím tắt chức năng khá đa dạng và hữu ích, với 2 chế độ hoạt động chính là Insert và Command.

Mở Vi trên Linux

Vi thực chất là 1 ứng dụng Terminal, so vậy các bạn sẽ phải khởi động từ cửa sổ Terminal tương ứng. Dùng cú pháp vi /path/to/file để mở file text có sẵn bằng Vi, và lệnh đó cũng sẽ hoạt động nếu file text được chỉ định không có sẵn, thay vào đó Vi sẽ tự tạo ra file text với tên như vậy.

[external_link_head]

Lưu ý rằng chúng ta cần phải dùng lệnh sudo nếu muốn chỉnh sửa file hệ thống, ví dụ: nếu muốn sửa file Fstab của hệ thống thì các bạn gõ lệnh:

sudo vi /etc/fstab

Nếu bạn dùng phiên bản hệ điều hành không phải Ubuntu của Linux thì thay thế sudo bằng su.

Chế độ Command

Dưới đây là hỉnh ảnh khi chúng ta mở file bằng Vi, trông như có vẻ chúng ta có thể gõ ký tự vào đây, nhưng thực chất thì không phải. Vi thực chất là ứng dụng soạn thảo bằng phương thức, và được mở bằng chế độ Command:

Khi ở trong chế độ Command, chúng ta có thể di chuyển con trỏ bằng cách nhấn phím mũi tên, nhấn x để xóa ký tự ngay dưới con trỏ, còn nhấn dd để xóa toàn bộ dòng ký tự. Bên cạnh đó, các bạn có thể lựa chọn, copy, cut và lưu đoạn text trong chế độ này. Di chuyển con trỏ sang bên trái hoặc phải của ký tự cần copy và nhấn phím v, nhấn x để cắt đoạn text, sau đó đặt con trỏ vào vị trí cần di chuyển đoạn text và nhấn p để paste:

Chế độ Insert

Đây là chế độ hoạt động của Vi cho phép người dùng chèn thêm ký tự vào văn bản. Chỉ cần nhấn nút I là chúng ta đã chuyển sang chế độ Insert sau khi xác định vị trí con trỏ trong chế độ Command:

Khi nhập xong đoạn nội dung cần thiết, nhấn phím Escape để quay về chế độ Command.

Saving và Quiting

Các bạn có thể lưu và thoát ứng dụng trong chế độ Command (nhấn Escape để chắc chắn rằng chúng ta đã ở trong chế độ này). Gõ :wq để lưu file sau khi thay đổi và đóng Vi, hoặc thực hiện riêng rẽ thành 2 công đoạn, :w để lưu file và :q để thoát chương trình mà không lưu lại thay đổi:

Nhưng Vi sẽ không cho người dùng đóng ứng dụng nếu đã thay đổi từ lần lưu cuối cùng, gõ lệnh :q! Và nhấn Enter để bỏ qua cảnh báo này:

Viết một chương trình C rất nhỏ bằng cách sử dụng Vi

Mở một Terminal.

Hãy nhập:

vi file.c

Điều này sẽ tạo ra một file mới.

Vi ở chế độ Command theo mặc định. Vì vậy, nếu bạn muốn viết một cái gì đó, bạn không thể thực hiện điều này.

“i” để có thể viết code của bạn.

Bây giờ, bạn sẽ ở trong chế độ Insert, nhưng nếu bạn muốn xóa một ký tự, bạn không thể làm điều đó.

ESC để đổi sang chế độ Command.

Trong chế độ Command, gõ “x”. Thao tác này sẽ xóa ký tự dưới con trỏ.

Bạn có thể chèn một ký tự ở bên trái con trỏ bằng cách gõ “i”.

Bạn có thể chèn ký tự ở bên phải con trỏ bằng cách gõ “a”.

Chèn dấu “>” vào văn bản.

Quay trở lại chế độ Command và gõ :wq, sau đó trở về:

wq

Bây giờ bạn đang ở command prompt. Hãy xem nội dung file của bạn bằng cách sử dụng cat.

[external_link offset=1]

Bạn có thể đang nghĩ rằng Vi rất phức tạp, nhưng thực tế không phải vậy. Vi là một trình soạn thảo khá đơn giản, nhưng nó chỉ có thể làm việc trong một chế độ duy nhất tại một thời điểm mà thôi.

Mở lại file của bạn (vi file.c) và viết đoạn code sau:

void main(void){ printf(“vi is a great tool to write code faster ”); }

Lưu file của bạn và nếu bạn đã cài đặt gcc, bạn nên biên dịch và chạy nó.

Các tùy chọn thông thường để mở file trong Vi

  • vi file: Tạo một file mới nếu nó không tồn tại. Nếu không, nó sẽ mở file hiện có.
  • vi -R file: Chế độ chỉ đọc (Read only)

Di chuyển giữa các ký tự

  • Bạn phải ở chế độ Command.
  • Bạn có thể sử dụng các phím: Mũi tên lên, xuống, trái và phải.

Ngoài ra, bạn có thể sử dụng các phím khác:

k

Đưa con trỏ lên trên

j

Đưa con trỏ xuống dưới

h

Đưa con trỏ sang trái

l

Đưa con trỏ sang phải

Các lệnh thông thường trong Vi

Lưu ý: Bạn phải ở chế độ Command.

Lệnh

Mô tả

i

​Chèn văn bản trước vị trí con trỏ hiện tại.

l

Chèn văn bản ở đầu dòng hiện tại.

a

Chèn văn bản sau vị trí con trỏ hiện tại.

A

Chèn văn bản ở cuối dòng hiện tại.

o

Tạo một dòng mới cho mục nhập văn bản bên dưới con trỏ.

O

Tạo một dòng mới cho mục nhập văn bản ở trên con trỏ.

x

Xóa ký tự bên dưới con trỏ.

X

Xóa ký tự trước con trỏ.

dd

Xóa dòng con trỏ đang được đặt.

cc

Xóa nội dung của dòng, để người dùng ở chế độ Insert.

r

Thay thế ký tự bên dưới con trỏ.

Lệnh sao chép và dán trong Vi (Thực hành!)

Tạo một file mới với tên “linux-distro”.

Viết danh sách sau:

  • Ubuntu
  • Linux Mint
  • Debian
  • Slackware
  • Red Hat

Thay đổi sang chế độ Command (ESC).

Di chuyển con trỏ đến “Ubuntu”.

yy (đây là lệnh để sao chép một dòng).

Gõ G.

Chèn một dòng mới bằng cách gõ o.

Đổi sang chế độ Command (ESC).

P (Lệnh này dùng để dán dòng).

1G

4yy.

G.

P.

[external_link offset=2]

Ngoài ra, bạn có thể sử dụng lệnh copy – paste khác:

  • yw: Sao chép từ hiện tại.
  • p: Đặt văn bản đã sao chép sau con trỏ.

Lệnh Vi nâng cao

<<

Tham gia vào dòng hiện tại và dòng tiếp theo. Một số tham gia vào nhiều dòng.

>>

Căn dòng hiện tại sang bên trái với một chiều rộng có thể thay đổi.

:nr file

Đọc file và chèn nó sau dòng n.

~

Chuyển đổi kiểu viết hoa/viết thường của ký tự bên dưới con trỏ.

^G

Nhấn các phím CTRL và G cùng một lúc để hiển thị tên file và trạng thái hiện tại.

U

Khôi phục dòng hiện tại về trạng thái trước khi con trỏ nhập vào dòng.

u

Hoàn tác thay đổi cuối cùng đối với tệp. Nhập lại “u” một lần nữa sẽ thực hiện lại thay đổi.

J

Tham gia vào dòng hiện tại và dòng tiếp theo. Một số tham gia vào nhiều dòng.

:f

Hiển thị vị trí hiện tại trong tệp bằng % và tên file, tổng số file.

:f filename

Đổi tên file hiện tại thành filename.

:w filename

Viết vào filename của file.

:e filename

Mở một file khác với filename.

:cd dirname

Thay đổi thư mục làm việc hiện tại thành dirname.

:e #

​Sử dụng để chuyển đổi giữa 2 file đã mở.

:n

Trong trường hợp bạn mở nhiều file bằng Vi, hãy sử dụng :n để chuyển đến file tiếp theo trong chuỗi.

:N

Trong trường hợp bạn mở nhiều file bằng vi, hãy sử dụng :N để chuyển đến file trước đó trong chuỗi.

:r file

​Đọc file và chèn nó sau dòng hiện tại

Làm việc với hai hoặc nhiều file (Thực hành!)

Mở file linux-distros

Trong chế độ Command, hãy gõ:

:e unix

Viết “UNIX is a good OS” và lưu nó.

Đi tới file linux-distros bằng lệnh:

:e #

Thoát khỏi Vi bằng cách gõ:

:q

Chúc các bạn thành công!

Xem thêm:

  • Các lệnh Shell cơ bản trong Linux
  • 8 lệnh chết người nhất định không bao giờ được chạy trên Linux
  • Cách sử dụng trình biên soạn Vim
  • 5 trình soạn thảo code miễn phí tốt nhất

[external_footer]

Recent Posts

Bảng xếp hạng Anime mùa hè 2022 – phần 7

Bảng xếp hạng Anime được xem nhiều nhất tuần của mùa hè. Bảng xếp hạng…

1 năm ago

Manga The Witch and the Beast được chuyển thể thành Anime

Theo thông báo của biên tập viên của manga là Shiraki trên Twitter Manga The…

1 năm ago

Tensei Shitara Slime Datta Ken chuẩn bị có bản điện ảnh

Vừa qua, dàn nhân lực chính thức cho bộ anime điện ảnh Tensei Shitara Slime…

1 năm ago

Anime One Punch Man công bố ra phần 3

Anime One Punch Man đã xác nhận ra phần 3, với thông báo sắp ra…

1 năm ago

Cẩm nang ĐTCL: Đội hình Bang Hội – Luyện Rồng

Nếu đã quá nhàm chán với các đội hình meta hiện tại thì cùng đổi…

1 năm ago

Anime EDENS ZERO chuẩn bị ra mắt phần 2

Vào hôm thứ tư vừa qua, Twitter chính thức cho anime Edens Zero đã xác…

1 năm ago