Đối với các định nghĩa khác, xem Vi (định hướng).

**vi** (đọc là "vi ai" theo cách đánh vần tiếng Anh) là chương trình soạn thảo văn bản trên máy tính được viết bởi Bill Joy năm 1976 để dùng cho hệ điều hành BSD. Sau này nó được AT&T dùng và trở thành tiêu chuẩn (dù không chính thức) trong Unix. vi được dùng ở chế độ văn bản (*text mode*) như trạm cuối (*terminal*) và console. Tên gọi lấy từ chữ viết tắt (hai chữ đầu) của lệnh `visual` trong chương trình **ex**. Lệnh này chuyển chế độ biên tập dòng (*line mode*) của **ex** sang chế độ trực quan (*visual mode*).

Thông thường, vì lý do thuận tiện, cùng một chương trình sẽ khởi động ở chế độ `vi` hay `ex`, tuỳ theo tên lệnh được gõ. Tên "vi" được xem là viết tắt chữ đầu nên được phát âm từng chữ cái là [vi: aɪ] (theo IPA) mà không đọc thành một từ.

`vi` có thể khó dùng đối với người mới biết, vì nó là trình biên tập theo chế độ (*modal editor*), tức là nó quy định các phím có ý nghĩa khác nhau tuỳ theo chế độ hiện dùng. Hai chế độ chính của vi là *insert* (điền) và *command* (lệnh). Ở chế độ `insert`, văn bản được nhập vào bình thường. Ở chế độ `command`, các phím được dùng để ra lệnh, như để di chuyển con trỏ, xoá ký tự, v.v. Ưu điểm của việc có chế độ lệnh riêng là nó làm đơn giản nhiều thao tác soạn thảo, thay vì phải dùng một ngón tay giữ phím `Alt`, phím `Ctrl`, hay các phím đặc biệt khác.

Hiện nay `vi` và emacs, cũng là một trình soạn thảo văn bản xuất hiện từ năm 1984, là hai phe của một cuộc chiến về trình biên tập.

Chế độ lệnh trong vi
--------------------

Khi mới khởi động, `vi` ở chế độ lệnh. Từ chế độ lệnh ta luôn có thể chuyển sang chế độ văn bản bằng cách bấm phím chữ `i`. Ngược lại, từ chế độ văn bản chuyển sang chế độ lệnh bằng phím `Esc`.

Các lệnh cơ bản trong `vi` đều bắt đầu bằng dấu hai chấm. Sau đó thường là các chữ cái viết tắt các từ tiếng Anh tương ứng với chức năng của lệnh đó:

| Lệnh | Từ | Chức năng |
| --- | --- | --- |
| `:r` | *read* | Đọc / mở file |
| `:w` | *write* | Ghi lại file hiện hành |
| `:q` | *quit* | Thoát khỏi `vi` |
| `:wq` | *quit - write* | Ghi lại file hiện hành, sau đó thoát khỏi `vi`. |
| `:q!` |  | Thoát khỏi `vi` mà không ghi lại file hiện hành |

vi nguyên thủy
--------------

vi được viết tại Evans Hall Lưu trữ 2005-01-16 tại Wayback Machine, Đại học California tại Berkeley bởi Bill Joy.

Các dòng và biến thể của vi
---------------------------

* vi được chuyển từ vi 3.7 trên BSD cổ điển sang các hệ thống Unix hiện đại. Nó dùng ed làm cơ sở mã (*codebase*), được phân phối tự do theo kiểu BSD từ tháng 1 năm 2002.
* nvi sử dụng vi nguyên thủy vào BSD thứ 4 (4BSD). Lưu trữ 2006-12-05 tại Wayback Machine
* Elvis là một dòng vi chạy trên Unix và các hệ điều hành khác. Lưu trữ 2008-05-13 tại Wayback Machine.
* Vigor thêm Vigor Assistant (cố ý dựa theo nhân vật hoạt họa Clippy của Microsoft Office) vào vi.
* VILE bổ sung tính năng nhiều bộ đệm và cửa sổ.
* vim - "Vi IMproved" - bản nâng cấp và mở rộng cho vi.
* bvi "Binary VI" - trình biên tập tập tin nhị phân.
* svicc - "Small VI Clone for the Commodore (64)"

Tham khảo
---------

1. ↑  "The VI editor". Bản gốc lưu trữ ngày 8 tháng 6 năm 2012. Truy cập ngày 13 tháng 8 năm 2012.

Liên kết ngoài
--------------

(Tiếng Anh)

* Trang người yêu thích vi
* Trình biên tập vi và các dòng của nó và các chương trình có giao diện giống vi Lưu trữ 2005-04-04 tại Wayback Machine
* Tài nguyên cho vi
* Hướng dẫn sử dụng vi Lưu trữ 2005-04-04 tại Wayback Machine
* Hướng dẫn nhanh về vi