Trong chương này, chúng ta sẽ hiểu cách thức hoạt động của Vi Editor trong Unix. Có nhiều cách để chỉnh sửa tệp trong Unix. Chỉnh sửa tệp bằng trình soạn thảo văn bản hướng màn hình vi là một trong những cách tốt nhất. Trình chỉnh sửa này cho phép bạn chỉnh sửa các dòng trong ngữ cảnh với các dòng khác trong tệp.
Một phiên bản cải tiến của trình soạn thảo vi có tên là VIM cũng đã được cung cấp ngay bây giờ. Ở đây, VIM là viết tắt của Vi IM đã được chứng minh.
vi thường được coi là tiêu chuẩn thực tế trong các trình soạn thảo Unix vì –
- Nó thường có sẵn trên tất cả các phiên bản của hệ thống Unix.
- Các triển khai của nó rất giống nhau trên diện rộng.
- Nó đòi hỏi rất ít tài nguyên.
- Nó thân thiện với người dùng hơn các trình soạn thảo khác như ed hoặc ex .
Bạn có thể sử dụng trình chỉnh sửa vi để chỉnh sửa tệp hiện có hoặc tạo tệp mới từ đầu. Bạn cũng có thể sử dụng trình chỉnh sửa này để chỉ đọc một tệp văn bản.
Khởi động trình soạn thảo vi
Bảng sau liệt kê các lệnh cơ bản để sử dụng trình soạn thảo vi –
Sr.No. | Lệnh & Mô tả |
1 | tên tệp vi Tạo một tệp mới nếu nó chưa tồn tại, nếu không sẽ mở một tệp hiện có. |
2 | tên tệp vi -R Mở tệp hiện có ở chế độ chỉ đọc. |
3 | xem tên tệp Mở tệp hiện có ở chế độ chỉ đọc. |
Sau đây là một ví dụ để tạo một tệp thử nghiệm mới nếu tệp đó chưa tồn tại trong thư mục làm việc hiện tại –
$vi testfile
Lệnh trên sẽ tạo ra kết quả sau:
|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]
Bạn sẽ nhận thấy dấu ngã (~) trên mỗi dòng sau con trỏ. Dấu ngã thể hiện một dòng không sử dụng. Nếu một dòng không bắt đầu bằng dấu ngã và có vẻ như để trống, thì sẽ có một khoảng trắng, tab, dòng mới hoặc một số ký tự không thể xem được khác.
Bây giờ bạn có một tệp đang mở để bắt đầu làm việc. Trước khi tiếp tục, chúng ta hãy hiểu một vài khái niệm quan trọng.
Chế độ hoạt động
Trong khi làm việc với trình soạn thảo vi, chúng tôi thường gặp hai chế độ sau:
- Chế độ lệnh – Chế độ này cho phép bạn thực hiện các tác vụ quản trị như lưu tệp, thực hiện lệnh, di chuyển con trỏ, cắt (kéo) và dán các dòng hoặc từ, cũng như tìm và thay thế. Trong chế độ này, bất cứ điều gì bạn nhập đều được hiểu là một lệnh.
- Chế độ chèn – Chế độ này cho phép bạn chèn văn bản vào tệp. Mọi thứ được nhập trong chế độ này được hiểu là đầu vào và được đặt trong tệp.
vi luôn bắt đầu ở chế độ lệnh . Để nhập văn bản, bạn phải ở chế độ chèn mà chỉ cần nhập i . Để thoát khỏi chế độ chèn, hãy nhấn phím Esc , phím này sẽ đưa bạn trở lại chế độ lệnh.
Gợi ý – Nếu bạn không chắc mình đang ở chế độ nào, hãy nhấn phím Esc hai lần; điều này sẽ đưa bạn đến chế độ lệnh. Bạn mở một tệp bằng trình chỉnh sửa vi. Bắt đầu bằng cách nhập một số ký tự và sau đó đến chế độ lệnh để hiểu sự khác biệt.
Thoát khỏi vi
Lệnh để thoát khỏi vi là : q . Khi ở chế độ lệnh, hãy nhập dấu hai chấm và ‘q’, sau đó là quay lại. Nếu tệp của bạn đã được sửa đổi theo bất kỳ cách nào, trình chỉnh sửa sẽ cảnh báo bạn về điều này và không cho phép bạn thoát. Để bỏ qua thông báo này, lệnh thoát khỏi vi mà không lưu là : q! . Điều này cho phép bạn thoát khỏi vi mà không cần lưu bất kỳ thay đổi nào.
Lệnh để lưu nội dung của trình soạn thảo là : w . Bạn có thể kết hợp lệnh trên với lệnh thoát hoặc sử dụng : wq và return.
Cách dễ nhất để lưu các thay đổi của bạn và thoát khỏi vi là bằng lệnh ZZ. Khi bạn đang ở chế độ lệnh, hãy nhập ZZ . Lệnh ZZ hoạt động giống như lệnh : wq .
Nếu bạn muốn chỉ định / nêu bất kỳ tên cụ thể nào cho tệp, bạn có thể làm như vậy bằng cách chỉ định nó sau : w . Ví dụ: nếu bạn muốn lưu tệp bạn đang làm việc dưới dạng một tên tệp khác có tên là filename2 , bạn sẽ nhập : w filename2 và quay lại.
Di chuyển trong tệp
Để di chuyển trong tệp mà không ảnh hưởng đến văn bản của bạn, bạn phải ở chế độ lệnh (nhấn Esc hai lần). Bảng sau liệt kê một số lệnh bạn có thể sử dụng để di chuyển xung quanh một ký tự tại một thời điểm:
Sr.No. | Lệnh & Mô tả |
1 | k Di chuyển con trỏ lên một dòng |
2 | j Di chuyển con trỏ xuống một dòng |
3 | h Di chuyển con trỏ sang trái một ký tự vị trí |
4 | l Di chuyển con trỏ đến đúng vị trí một ký tự |
Các điểm sau đây cần được xem xét để di chuyển trong tệp:
- vi có phân biệt chữ hoa chữ thường. Bạn cần chú ý viết hoa khi sử dụng các câu lệnh.
- Hầu hết các lệnh trong vi có thể được bắt đầu bằng số lần bạn muốn hành động xảy ra. Ví dụ: 2j di chuyển con trỏ hai dòng xuống vị trí con trỏ.
Có nhiều cách khác để di chuyển trong một tệp trong vi. Hãy nhớ rằng bạn phải ở chế độ lệnh ( nhấn Esc hai lần ). Bảng sau liệt kê một số lệnh để di chuyển xung quanh tệp:
Lệnh điều khiển
Các lệnh sau có thể được sử dụng với Phím Điều khiển để thực hiện các chức năng như được cho trong bảng bên dưới:
Chỉnh sửa tệp
Để chỉnh sửa tệp, bạn cần ở chế độ chèn. Có nhiều cách để vào chế độ chèn từ chế độ lệnh –
Sr.No. | Lệnh & Mô tả |
1 | tôi Chèn văn bản trước vị trí con trỏ hiện tại |
2 | Tôi Chèn văn bản vào đầu dòng hiện tại |
3 | một Chèn văn bản sau vị trí con trỏ hiện tại |
4 | Một Chèn văn bản vào cuối dòng hiện tại |
5 | o Tạo một dòng mới cho mục nhập văn bản bên dưới vị trí con trỏ |
6 | O Tạo một dòng mới cho mục nhập văn bản phía trên vị trí con trỏ |
Xóa ký tự
Đây là danh sách các lệnh quan trọng, có thể được sử dụng để xóa các ký tự và dòng trong một tệp đang mở –
Sr.No. | Lệnh & Mô tả |
1 | x Xóa ký tự dưới vị trí con trỏ |
2 | X Xóa ký tự trước vị trí con trỏ |
3 | dw Xóa từ vị trí con trỏ hiện tại sang từ tiếp theo |
4 | d ^ Xóa từ vị trí con trỏ hiện tại đến đầu dòng |
5 | d $ Xóa từ vị trí con trỏ hiện tại đến cuối dòng |
6 | D Xóa từ vị trí con trỏ đến cuối dòng hiện tại |
7 | dd Xóa dòng mà con trỏ đang bật |
Như đã đề cập ở trên, hầu hết các lệnh trong vi có thể được bắt đầu bằng số lần bạn muốn hành động xảy ra. Ví dụ: 2x xóa hai ký tự dưới vị trí con trỏ và 2dd xóa hai dòng mà con trỏ đang bật.
Chúng tôi khuyên bạn nên thực hành các lệnh trước khi tiếp tục.
Thay đổi lệnh
Bạn cũng có khả năng thay đổi các ký tự, từ hoặc dòng trong vi mà không cần xóa chúng. Dưới đây là các lệnh liên quan –
Sr.No. | Lệnh & Mô tả |
1 | cc Xóa nội dung của dòng, để bạn ở chế độ chèn. |
2 | cw Thay đổi từ mà con trỏ đang bật từ con trỏ sang chữ w viết thường của từ. |
3 | r Thay thế ký tự dưới con trỏ. vi quay trở lại chế độ lệnh sau khi bước thay thế được nhập. |
4 | R Ghi đè nhiều ký tự bắt đầu bằng ký tự hiện ở dưới con trỏ. Bạn phải sử dụng Esc để dừng ghi đè. |
5 | S Thay thế ký tự hiện tại bằng ký tự bạn nhập. Sau đó, bạn ở chế độ chèn. |
6 | S Xóa dòng con trỏ đang bật và thay thế nó bằng văn bản mới. Sau khi nhập văn bản mới, vi vẫn ở chế độ chèn. |
Sao chép và dán lệnh
Bạn có thể sao chép các dòng hoặc từ từ một nơi và sau đó bạn có thể dán chúng vào một nơi khác bằng cách sử dụng các lệnh sau:
Sr.No. | Lệnh & Mô tả |
1 | yy Sao chép dòng hiện tại. |
2 | Là Sao chép từ hiện tại từ ký tự mà con trỏ w viết thường đang bật, cho đến cuối từ. |
3 | P Đặt văn bản đã sao chép sau con trỏ. |
4 | P Đặt văn bản bị kéo dài trước con trỏ. |
Lệnh nâng cao
Có một số lệnh nâng cao giúp đơn giản hóa việc chỉnh sửa hàng ngày và cho phép sử dụng hiệu quả hơn vi –Tìm kiếm từ và ký tự
Trình soạn thảo vi có hai loại tìm kiếm: chuỗi và ký tự . Đối với tìm kiếm chuỗi, dấu / và ? các lệnh được sử dụng. Khi bạn bắt đầu các lệnh này, lệnh vừa nhập sẽ được hiển thị trên dòng cuối cùng của màn hình, nơi bạn nhập chuỗi cụ thể cần tìm.
Hai lệnh này chỉ khác nhau về hướng mà tìm kiếm diễn ra –
- Lệnh / tìm kiếm chuyển tiếp (xuống dưới) trong tệp.
- Cái ? lệnh tìm kiếm ngược (lên trên) trong tệp.
Lệnh n và lệnh N lặp lại lệnh tìm kiếm trước đó theo cùng một hướng hoặc ngược lại. Một số ký tự có ý nghĩa đặc biệt. Các ký tự này phải được đặt trước dấu gạch chéo ngược ( \ ) để được đưa vào như một phần của biểu thức tìm kiếm.
Sr.No. | Nhân vật & Mô tả |
1 | ^ Tìm kiếm ở đầu dòng (Sử dụng ở đầu biểu thức tìm kiếm). |
2 | . Khớp một ký tự. |
3 | * Khớp với không hoặc nhiều ký tự trước đó. |
4 | $ Cuối dòng (Sử dụng ở cuối biểu thức tìm kiếm). |
5 | [ Bắt đầu một tập hợp các biểu thức phù hợp hoặc không khớp. |
6 | < Điều này được đặt trong một biểu thức thoát với dấu gạch chéo ngược để tìm phần cuối hoặc phần đầu của một từ. |
7 | > Điều này giúp xem mô tả ký tự ‘ < ‘ ở trên. |
Tìm kiếm ký tự tìm kiếm trong một dòng để tìm ký tự được nhập sau lệnh. Các lệnh f và F chỉ tìm kiếm một ký tự trên dòng hiện tại. f tìm kiếm tiến và F tìm kiếm ngược và con trỏ di chuyển đến vị trí của ký tự được tìm thấy.
Lệnh t và T chỉ tìm kiếm một ký tự trên dòng hiện tại, nhưng đối với t , con trỏ di chuyển đến vị trí trước ký tự và T tìm kiếm dòng ngược lại vị trí sau ký tự.
Đặt lệnh
Bạn có thể thay đổi giao diện của màn hình vi bằng cách sử dụng các lệnh sau : đặt . Khi bạn đang ở chế độ lệnh, hãy nhập : set theo sau bởi bất kỳ lệnh nào sau đây.
Sr.No. | Lệnh & Mô tả |
1 | : đặt ic Bỏ qua trường hợp khi tìm kiếm |
2 | :cho phép bạn Đặt autoindent |
3 | : bộ nghiên cứu Bỏ cài đặt tự động |
4 | : đặt không Hiển thị các dòng có số dòng ở phía bên trái |
5 | : set sw Đặt chiều rộng của tab phần mềm. Ví dụ: bạn sẽ đặt độ rộng shift là 4 bằng lệnh này – : set sw = 4 |
6 | : set ws Nếu wrapscan được đặt và từ không được tìm thấy ở cuối tệp, nó sẽ thử tìm kiếm từ đầu |
7 | : đặt wm Nếu tùy chọn này có giá trị lớn hơn 0, trình soạn thảo sẽ tự động “bọc từ”. Ví dụ: để đặt lề bao gồm hai ký tự, bạn sẽ nhập thế này :: set wm = 2 |
số 8 | : set ro Thay đổi loại tệp thành “chỉ đọc” |
9 | : đặt thời hạn In loại thiết bị đầu cuối |
10 | : đặt bf Loại bỏ các ký tự điều khiển khỏi đầu vào |
Chạy lệnh
Vi có khả năng chạy các lệnh từ bên trong trình soạn thảo. Để chạy một lệnh, bạn chỉ cần vào chế độ lệnh và gõ :! yêu cầu.
Ví dụ: nếu bạn muốn kiểm tra xem tệp có tồn tại hay không trước khi cố gắng lưu tệp của mình với tên tệp đó, bạn có thể nhập :! ls và bạn sẽ thấy kết quả của ls trên màn hình.
Bạn có thể nhấn bất kỳ phím nào (hoặc chuỗi thoát của lệnh) để quay lại phiên vi của bạn.
Thay thế Văn bản
Lệnh thay thế ( : s / ) cho phép bạn nhanh chóng thay thế các từ hoặc nhóm từ trong tệp của mình. Sau đây là cú pháp để thay thế văn bản:
:s/search/replace/g
Chữ g là viết tắt của toàn cầu. Kết quả của lệnh này là tất cả các lần xuất hiện trên dòng của con trỏ đều bị thay đổi.
Những điểm quan trọng cần lưu ý
Những điểm sau đây sẽ giúp bạn thành công với vi –
- Bạn phải ở chế độ lệnh để sử dụng các lệnh. (Nhấn Esc hai lần bất kỳ lúc nào để đảm bảo rằng bạn đang ở chế độ lệnh.)
- Bạn phải cẩn thận với các lệnh. Chúng có phân biệt chữ hoa chữ thường.
- Bạn phải ở chế độ chèn để nhập văn bản.