Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

exposix - Trực tuyến trên đám mây

Chạy exposix trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks qua Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

Đây là bản trình diễn lệnh có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


ex - trình soạn thảo văn bản

SYNOPSIS


ex [−rR] [−s | −v] [−c lệnh] [−t dây đeo thẻ] [−w kích thước] [hồ sơhữu ích. Cảm ơn !]

MÔ TẢ


Sản phẩm ex tiện ích là một trình soạn thảo văn bản hướng dòng. Có hai chế độ khác của trình chỉnh sửa—
mở và trực quan — trong đó khả dụng chỉnh sửa theo hướng màn hình. Điều này được mô tả nhiều hơn
hoàn toàn bởi ex mởtrực quan lệnh và trong vi.

Nếu một toán hạng là '-', kết quả không xác định.

Phần này sử dụng thuật ngữ chỉnh sửa đệm để mô tả văn bản làm việc hiện tại. Không cụ thể
thực hiện được ngụ ý bởi thuật ngữ này. Tất cả các thay đổi chỉnh sửa được thực hiện trên bản chỉnh sửa
bộ đệm và không có thay đổi nào đối với nó sẽ ảnh hưởng đến bất kỳ tệp nào cho đến khi lệnh soạn thảo ghi
tập tin.

Một số thiết bị đầu cuối không có tất cả các khả năng cần thiết để hỗ trợ hoàn chỉnh ex
định nghĩa, chẳng hạn như các lệnh chỉnh sửa toàn màn hình (trực quan chế độ or mở chế độ). Khi nào
các lệnh này không thể được hỗ trợ trên các thiết bị đầu cuối như vậy, điều kiện này sẽ không tạo ra
thông báo lỗi chẳng hạn như `` không phải lệnh của trình soạn thảo '' hoặc báo cáo lỗi cú pháp. Các
việc triển khai có thể chấp nhận các lệnh và tạo ra kết quả trên màn hình
kết quả của một nỗ lực không thành công để đáp ứng các yêu cầu của bộ sách này
POSIX.1‐2008 hoặc báo cáo lỗi mô tả sự thiếu hụt liên quan đến thiết bị đầu cuối.

LỰA CHỌN


Sản phẩm ex tiện ích sẽ phù hợp với khối lượng Định nghĩa cơ sở của POSIX.1‐2008, Phần 12.2,
Tiện ích cú pháp Hướng dẫn, ngoại trừ việc sử dụng không xác định '-', Và rằng '+' có lẽ
được công nhận là một dấu phân cách tùy chọn cũng như '-'.

Các tùy chọn sau sẽ được hỗ trợ:

−c lệnh
Chỉ định một lệnh ban đầu sẽ được thực thi trong bộ đệm chỉnh sửa đầu tiên được tải từ
một tệp hiện có (xem phần MÔ TẢ ĐÃ MỞ RỘNG). Việc triển khai có thể
hỗ trợ nhiều hơn một −c lựa chọn. Trong các triển khai như vậy, các
lệnh sẽ được thực hiện theo thứ tự được chỉ định trên dòng lệnh.

−r Khôi phục các tệp đã đặt tên (xem phần MÔ TẢ ĐÃ MỞ RỘNG). Hồi phục
thông tin cho một tệp sẽ được lưu trong quá trình biên tập hoặc sự cố hệ thống (đối với
ví dụ, khi trình chỉnh sửa bị kết thúc bởi một tín hiệu mà trình chỉnh sửa có thể bắt được),
hoặc sau khi sử dụng một ex bảo tồn chỉ huy.

A sự sụp giảm trong bối cảnh này là sự cố không mong muốn của hệ thống hoặc tiện ích
yêu cầu khởi động lại hệ thống hoặc tiện ích bị lỗi. Một sự cố hệ thống ngụ ý rằng
bất kỳ tiện ích nào đang chạy tại thời điểm đó cũng bị sập. Trong trường hợp của một trình soạn thảo hoặc hệ thống
sự cố, số lượng thay đổi đối với bộ đệm chỉnh sửa (kể từ lần gần đây nhất bảo tồn
lệnh) sẽ được phục hồi là không xác định.

Nếu không hồ sơ toán hạng được đưa ra và −t tùy chọn không được chỉ định, tất cả các tùy chọn khác
các tùy chọn, XUẤT CẢNH biến và bất kỳ .exrc các tập tin sẽ bị bỏ qua; một danh sách về
tất cả các tệp có thể khôi phục có sẵn cho người dùng đang gọi sẽ được ghi, và
trình soạn thảo sẽ thoát bình thường mà không cần thực hiện thêm hành động nào.

−R Thiết lập chỉ đọc chỉnh sửa tùy chọn.

−s Chuẩn bị ex để sử dụng hàng loạt bằng cách thực hiện các hành động sau:

* Ngăn chặn lời nhắc viết và thông báo cung cấp thông tin (nhưng không phải chẩn đoán).

* Bỏ qua giá trị của HẠN và bất kỳ loại thiết bị đầu cuối mặc định triển khai nào và
giả sử thiết bị đầu cuối là loại không có khả năng hỗ trợ các chế độ mở hoặc chế độ trực quan;
xem trực quan lệnh và mô tả của vi.

* Ngăn chặn việc sử dụng XUẤT CẢNH biến môi trường và việc đọc bất kỳ
.exrc tập tin; xem phần MÔ TẢ MỞ RỘNG.

* Ngăn chặn tự động nhập, bỏ qua giá trị của tự chủ chỉnh sửa tùy chọn.

−t dây đeo thẻ
Chỉnh sửa tệp chứa tệp đã chỉ định dây đeo thẻ; xem ctag. Các thẻ tính năng
đại diện bởi −t dây đeo thẻtag lệnh là tùy chọn. Nó sẽ là
được cung cấp trên bất kỳ hệ thống nào cũng cung cấp triển khai phù hợp ctag;
mặt khác, việc sử dụng −t tạo ra kết quả không xác định. Trên bất kỳ hệ thống nào, nó sẽ
một lỗi để chỉ định nhiều hơn một −t tùy chọn.

−v Bắt đầu ở chế độ trực quan (xem vi).

−w kích thước Đặt giá trị của cửa sổ tùy chọn trình chỉnh sửa để kích thước.

TOÁN HẠNG


Toán hạng sau sẽ được hỗ trợ:

hồ sơ Tên đường dẫn của tệp cần chỉnh sửa.

STDIN


Đầu vào tiêu chuẩn bao gồm một loạt lệnh và văn bản đầu vào, như được mô tả trong
PHẦN MÔ TẢ MỞ RỘNG. Việc triển khai có thể giới hạn mỗi dòng đầu vào tiêu chuẩn
độ dài {LINE_MAX}.

Nếu đầu vào tiêu chuẩn không phải là thiết bị đầu cuối, nó sẽ giống như −s tùy chọn đã được
được chỉ định.

Nếu một lần đọc từ đầu vào tiêu chuẩn trả về lỗi hoặc nếu trình chỉnh sửa phát hiện ra phần cuối của-
điều kiện tệp từ đầu vào tiêu chuẩn, nó sẽ tương đương với không đồng bộ SIGHUP
biến cố.

ĐẦU VÀO CÁC TẬP TIN


Tệp đầu vào phải là tệp văn bản hoặc tệp sẽ là tệp văn bản trừ trường hợp không hoàn chỉnh
dòng cuối cùng không dài hơn {LINE_MAX} −1 byte và không chứa NUL
nhân vật. Theo mặc định, bất kỳ dòng cuối cùng không hoàn chỉnh nào sẽ được coi như thể nó có một dấu
. Việc chỉnh sửa các dạng tệp khác có thể được phép tùy chọn bởi ex
thực hiện.

Sản phẩm .exrc tệp và tệp nguồn phải là tệp văn bản bao gồm ex các lệnh; xem
PHẦN MÔ TẢ MỞ RỘNG.

Theo mặc định, trình soạn thảo sẽ đọc các dòng từ các tệp cần chỉnh sửa mà không cần thông dịch
bất kỳ dòng nào trong số đó dưới dạng bất kỳ dạng lệnh nào của trình soạn thảo.

MÔI TRƯỜNG BIẾN


Các biến môi trường sau đây sẽ ảnh hưởng đến việc thực hiện ex:

CỘT Ghi đè kích thước màn hình ngang do hệ thống chọn. Xem các định nghĩa cơ bản
khối lượng của POSIX.1‐2008, Chương 8, Môi trường Biến cho các giá trị hợp lệ và
kết quả khi nó không được đặt hoặc null.

XUẤT CẢNH Xác định danh sách ex các lệnh được thực thi khi khởi động trình soạn thảo. Xem
Phần MÔ TẢ MỞ RỘNG để biết thêm chi tiết về giai đoạn khởi tạo.

TRANG CHỦ Xác định tên đường dẫn của một thư mục sẽ được tìm kiếm cho một trình soạn thảo bắt đầu-
lên tệp có tên .exrc; xem phần MÔ TẢ MỞ RỘNG.

NGÔN NGỮ Cung cấp giá trị mặc định cho các biến quốc tế hóa chưa được đặt hoặc
vô giá trị. (Xem tập Định nghĩa cơ bản của POSIX.1‐2008, Phần 8.2,
quốc tế hóa Biến ưu tiên quốc tế hóa
các biến được sử dụng để xác định giá trị của danh mục ngôn ngữ.)

LC_ALL Nếu được đặt thành giá trị chuỗi không trống, hãy ghi đè giá trị của tất cả các chuỗi khác
các biến quốc tế hóa.

LC_THU THẬP
Xác định ngôn ngữ cho hành vi của các phạm vi, các lớp tương đương và đa
các phần tử đối chiếu ký tự trong biểu thức chính quy.

LC_CTYPE Xác định ngôn ngữ để diễn giải chuỗi byte dữ liệu văn bản
dưới dạng ký tự (ví dụ: byte đơn trái ngược với ký tự nhiều byte trong
đối số và tệp đầu vào), hành vi của các lớp ký tự trong
biểu thức, sự phân loại các ký tự thành chữ hoa hoặc chữ thường,
chuyển đổi trường hợp của các chữ cái và phát hiện các ranh giới từ.

LC_MESSAGES
Xác định ngôn ngữ sẽ được sử dụng để ảnh hưởng đến định dạng và nội dung của
thông báo chẩn đoán được ghi vào lỗi tiêu chuẩn.

NGÀNH NGHỀ Ghi đè kích thước màn hình dọc do hệ thống chọn, được sử dụng làm số dòng
trong một màn hình nhiều màn hình và kích thước màn hình dọc ở chế độ trực quan. Xem cơ sở
Khối lượng định nghĩa của POSIX.1‐2008, Chương 8, Môi trường Biến hợp lệ
giá trị và kết quả khi nó không được đặt hoặc null.

NLSPATH Xác định vị trí của danh mục thư để xử lý LC_MESSAGES.

PATH Xác định đường dẫn tìm kiếm cho lệnh shell được chỉ định trong ex biên tập viên
lệnh !, shell, đọcviếtvà lệnh chế độ mở và chế độ trực quan !; xem
mô tả về tìm kiếm và thực thi lệnh trong Phần 2.9.1.1, Lệnh
Tìm kiếm Thực hiện.

SHELL Xác định trình thông dịch dòng lệnh ưa thích để sử dụng làm giá trị mặc định của
các shell chỉnh sửa tùy chọn.

HẠN Xác định tên của loại thiết bị đầu cuối. Nếu biến này không được đặt hoặc null, một
loại đầu cuối mặc định không xác định sẽ được sử dụng.

BẤT NGỜ SỰ KIỆN


Thuật ngữ sau được sử dụng trong phần này và phần sau để chỉ định lệnh và
các hành động sự kiện không đồng bộ:

hoàn thành viết
Ghi hoàn chỉnh là ghi toàn bộ nội dung của bộ đệm chỉnh sửa vào một tệp
thuộc loại khác với thiết bị đầu cuối hoặc việc lưu bộ đệm chỉnh sửa gây ra
bởi người dùng thực hiện ex bảo tồn yêu cầu. Viết nội dung của bản chỉnh sửa
đệm vào một tệp tạm thời sẽ bị xóa khi trình chỉnh sửa thoát ra sẽ không
được coi là một bài viết hoàn chỉnh.

Các hành động sau sẽ được thực hiện khi nhận được tín hiệu:

SIGINT Nếu đầu vào chuẩn không phải là thiết bị đầu cuối, ex sẽ không ghi tệp hoặc
trở lại chế độ nhập lệnh hoặc văn bản và sẽ thoát ra với một lối ra khác XNUMX
trạng thái.

Ngược lại, nếu thực hiện lệnh chế độ nhập văn bản mở hoặc trực quan, ex trong biên nhận
của SIGINT sẽ hoạt động giống nhau khi nó nhận được tính cách.

Nếu không thì:

1. Nếu thực hiện một ex lệnh chế độ nhập văn bản, tất cả các dòng nhập đã được
được nhập hoàn toàn sẽ được giải quyết vào bộ đệm chỉnh sửa, và bất kỳ phần nào
dòng đã nhập sẽ bị loại bỏ.

2. Nếu có một lệnh hiện đang thực thi, lệnh đó sẽ bị hủy bỏ và một thông báo
hiển thị. Trừ khi được chỉ định khác bởi ex or vi mô tả lệnh,
không xác định được liệu bất kỳ dòng nào được sửa đổi bởi lệnh đang thực thi có xuất hiện hay không
đã sửa đổi, hoặc như trước khi được sửa đổi bởi lệnh đang thực thi, trong
bộ đệm.

Nếu lệnh hiện đang thực thi là lệnh chuyển động,
lệnh sẽ bị loại bỏ.

3. Nếu ở chế độ mở hoặc lệnh trực quan, thiết bị đầu cuối sẽ được cảnh báo.

4. Trình chỉnh sửa sau đó sẽ trở lại chế độ lệnh.

SIGCONT Màn hình sẽ được làm mới nếu ở chế độ mở hoặc chế độ hiển thị.

SIGHUP Nếu bộ đệm chỉnh sửa đã được sửa đổi kể từ lần viết hoàn chỉnh cuối cùng, ex phải
cố gắng lưu bộ đệm chỉnh sửa để có thể khôi phục nó sau này bằng cách sử dụng −r
tùy chọn hoặc ex lấy lại yêu cầu. Người chỉnh sửa sẽ không ghi tệp hoặc trả lại
sang chế độ nhập lệnh hoặc nhập văn bản và sẽ kết thúc với trạng thái thoát khác XNUMX.

SIGTERM Tham khảo SIGHUP.

Hành động được thực hiện cho tất cả các tín hiệu khác là không xác định.

GIỚI THIỆU


Đầu ra tiêu chuẩn chỉ được sử dụng để viết lời nhắc cho người dùng, để cung cấp thông tin
và để viết các dòng từ tệp.

STDERR


Lỗi chuẩn chỉ được sử dụng cho các thông báo chẩn đoán.

OUTPUT CÁC TẬP TIN


Đầu ra từ ex sẽ là các tệp văn bản.

ĐA THẾ HỆ MÔ TẢ


Chỉ ex chế độ của trình soạn thảo được mô tả trong phần này. Nhìn thấy vi để chỉnh sửa bổ sung
khả năng có sẵn trong ex.

Khi một lỗi xảy ra, ex sẽ viết một tin nhắn. Nếu thiết bị đầu cuối hỗ trợ chế độ nổi bật
(chẳng hạn như video nghịch đảo), thông báo sẽ được viết ở chế độ nổi bật. Nếu thiết bị đầu cuối
không hỗ trợ chế độ nổi bật và tùy chọn chỉnh sửa chuông báo lỗi được thiết lập, một hành động cảnh báo
sẽ đứng trước thông báo lỗi.

Theo mặc định, ex sẽ bắt đầu ở chế độ lệnh, chế độ này sẽ được biểu thị bằng : lời nhắc; Thấy chưa
các nhanh chóng yêu cầu. Chế độ nhập văn bản có thể được nhập bằng thêm, chèn, hoặc là thay đổi
các lệnh; nó có thể được thoát (và nhập lại chế độ lệnh) bằng cách gõ ('.') một mình
ở đầu dòng.

Khởi tạo in ex vi
Các ký hiệu sau được sử dụng trong phần này và phần sau để chỉ định các vị trí trong
chỉnh sửa bộ đệm:

luân phiên hiện hành tên đường dẫn
Hai tên đường dẫn, được đặt tên hiện hànhluân phiên, được duy trì bởi biên tập viên. Bất kì ex
các lệnh lấy tên tệp làm đối số sẽ đặt chúng như sau:

1. Nếu a hồ sơ đối số được chỉ định cho ex chỉnh sửa, ex, hoặc là lấy lại lệnh, hoặc nếu
an ex tag lệnh thay thế nội dung của bộ đệm chỉnh sửa.

Một. Nếu lệnh thay thế nội dung của bộ đệm chỉnh sửa, hiện tại
tên đường dẫn sẽ được đặt thành hồ sơ đối số hoặc tệp được chỉ ra bởi thẻ,
và tên đường dẫn thay thế sẽ được đặt thành giá trị trước đó của dòng điện
tên đường dẫn.

b. Nếu không, tên đường dẫn thay thế sẽ được đặt thành hồ sơ tranh luận.

2. Nếu a hồ sơ đối số được chỉ định cho ex tiếp theo chỉ huy:

Một. Nếu lệnh thay thế nội dung của bộ đệm chỉnh sửa, hiện tại
tên đường dẫn sẽ được đặt thành đầu tiên hồ sơ đối số và tên đường dẫn thay thế
sẽ được đặt thành giá trị trước đó của tên đường dẫn hiện tại.

3. Nếu a hồ sơ đối số được chỉ định cho ex hồ sơ lệnh, tên đường dẫn hiện tại
sẽ được đặt thành hồ sơ và tên đường dẫn thay thế sẽ được đặt thành
giá trị trước đó của tên đường dẫn hiện tại.

4. Nếu a hồ sơ đối số được chỉ định cho ex đọcviết lệnh (nghĩa là khi
đọc hoặc ghi một tệp chứ không phải chương trình được đặt tên bởi shell chỉnh sửa
tùy chọn), hoặc hồ sơ đối số được chỉ định cho ex xit chỉ huy:

Một. Nếu tên đường dẫn hiện tại không có giá trị, tên đường dẫn hiện tại sẽ được đặt thành
các hồ sơ tranh luận.

b. Nếu không, tên đường dẫn thay thế sẽ được đặt thành hồ sơ tranh luận.

Nếu tên đường dẫn thay thế được đặt thành giá trị trước đó của tên đường dẫn hiện tại khi
tên đường dẫn hiện tại không có giá trị trước đó, thì tên đường dẫn thay thế sẽ có
kết quả là không có giá trị.

hiện hành hàng
Dòng của bộ đệm chỉnh sửa được tham chiếu bởi con trỏ. Mỗi mô tả lệnh
chỉ định dòng hiện tại sau khi lệnh đã được thực thi, vì hiện hành hàng
giá trị. Khi bộ đệm chỉnh sửa không chứa dòng nào, dòng hiện tại sẽ bằng XNUMX; Thấy chưa
Giải quyết in ex.

hiện hành cột
Cột dòng hiển thị hiện tại do con trỏ chiếm giữ. (Các cột sẽ là
được đánh số bắt đầu từ 1.) Mỗi ​​mô tả lệnh chỉ định cột hiện tại
sau khi lệnh đã được thực thi, hiện hành cột giá trị. Cột này là một
lý tưởng cột được ghi nhớ trong suốt thời gian tồn tại của trình biên tập. Màn hình thực tế
cột dòng mà con trỏ dừng lại có thể khác với cột hiện tại;
xem cuộc thảo luận về vị trí con trỏ trong Lệnh Mô tả in vi.

định đến không
Mô tả cho giá trị cột hiện tại, nghĩa là cột hiện tại sẽ
đặt thành cột dòng hiển thị cuối cùng được hiển thị bất kỳ phần nào của dòng đầu tiên
không của dòng. Nếu dòng không có không nhân vật,
cột hiện tại sẽ được đặt thành cột dòng hiển thị cuối cùng trên đó
hiển thị bất kỳ phần nào của phần cuối cùng không ký tự trong dòng. Nếu dòng là
trống, cột hiện tại sẽ được đặt ở vị trí cột 1.

Độ dài của các dòng trong bộ đệm chỉnh sửa có thể được giới hạn ở {LINE_MAX} byte. Mở và
chế độ trực quan, độ dài của các dòng trong bộ đệm chỉnh sửa có thể bị giới hạn ở số lượng
các ký tự sẽ phù hợp với màn hình. Nếu một trong hai giới hạn bị vượt quá trong quá trình chỉnh sửa, một
thông báo lỗi sẽ được viết. Nếu một trong hai giới hạn bị vượt quá bởi một dòng được đọc trong một tệp,
một thông báo lỗi sẽ được viết và phiên chỉnh sửa có thể bị kết thúc.

Nếu trình chỉnh sửa ngừng chạy do bất kỳ lý do nào khác ngoài lệnh của người dùng và chỉnh sửa
bộ đệm đã được sửa đổi kể từ lần viết hoàn chỉnh cuối cùng, nó sẽ tương đương với một SIGHUP
sự kiện không đồng bộ. Nếu hệ thống gặp sự cố, nó sẽ tương đương với SIGHUP không đồng bộ
biến cố.

Trong quá trình khởi tạo (trước khi tệp đầu tiên được sao chép vào bộ đệm chỉnh sửa hoặc bất kỳ người dùng nào
các lệnh từ thiết bị đầu cuối được xử lý) sẽ xảy ra những điều sau:

1. Nếu biến môi trường XUẤT CẢNH được thiết lập, trình soạn thảo sẽ thực hiện ex lệnh
chứa trong biến đó.

2. Nếu các XUẤT CẢNH biến không được đặt và tất cả những điều sau đây đều đúng:

a. TRANG CHỦ biến môi trường không rỗng và không rỗng.

b. Tập tin .exrc trong thư mục được giới thiệu bởi TRANG CHỦ biến môi trường:

tôi. Tồn tại

ii. Được sở hữu bởi cùng một ID người dùng với ID người dùng thực của quy trình hoặc
quy trình có các đặc quyền thích hợp

iii. Không thể ghi bởi bất kỳ ai khác ngoài chủ sở hữu

biên tập viên sẽ thực hiện ex các lệnh có trong tệp đó.

3. Nếu và chỉ khi tất cả những điều sau đây đều đúng:

Một. Thư mục hiện tại không được tham chiếu bởi TRANG CHỦ biến môi trường.

b. Một lệnh trong XUẤT CẢNH biến môi trường hoặc một lệnh trong .exrc tập tin trong
thư mục được giới thiệu bởi TRANG CHỦ biến môi trường đặt tùy chọn trình chỉnh sửa
exrc.

c. .exrc tệp trong thư mục hiện tại:

tôi. Tồn tại

ii. Được sở hữu bởi cùng một ID người dùng với ID người dùng thực của quy trình hoặc bởi một trong các
một tập hợp các ID người dùng do triển khai xác định

iii. Không thể ghi bởi bất kỳ ai khác ngoài chủ sở hữu

biên tập viên sẽ cố gắng thực hiện ex các lệnh có trong tệp đó.

Các dòng trong bất kỳ .exrc tệp có dòng trống sẽ bị bỏ qua. Nếu có .exrc File tồn tại,
nhưng không được đọc vì lý do quyền sở hữu hoặc quyền, đó sẽ là một lỗi.

Sau XUẤT CẢNH biến và bất kỳ .exrc tệp được xử lý, tệp đầu tiên được chỉ định bởi
người dùng sẽ được chỉnh sửa, như sau:

1. Nếu người dùng chỉ định −t tùy chọn, hiệu ứng sẽ như thể ex tag lệnh là
được nhập với đối số được chỉ định, ngoại trừ nếu quá trình xử lý thẻ thực hiện
không dẫn đến việc chỉnh sửa tệp, hiệu ứng sẽ như được mô tả trong bước 3. dưới đây.

2. Ngược lại, nếu người dùng chỉ định bất kỳ dòng lệnh nào hồ sơ đối số, hiệu quả sẽ là
như thể ex chỉnh sửa lệnh đã được nhập với đối số đầu tiên trong số các đối số đó là hồ sơ
tranh luận.

3. Nếu không, hiệu ứng sẽ như thể ex chỉnh sửa lệnh đã được nhập bằng một
tên tệp không tồn tại như của nó hồ sơ lý lẽ. Không xác định được liệu hành động này có
đặt tên đường dẫn hiện tại. Trong một triển khai mà hành động này không đặt
tên đường dẫn hiện tại, bất kỳ lệnh soạn thảo nào sử dụng tên đường dẫn hiện tại sẽ không thành công cho đến khi
lệnh soạn thảo đặt tên đường dẫn hiện tại.

Nếu −r tùy chọn đã được chỉ định, lần đầu tiên một tệp trong danh sách đối số ban đầu hoặc một
tệp được chỉ định bởi −t tùy chọn được chỉnh sửa, nếu thông tin khôi phục trước đó đã được
được lưu về nó, thông tin đó sẽ được phục hồi và người chỉnh sửa sẽ cư xử như thể
nội dung của bộ đệm chỉnh sửa đã được sửa đổi. Nếu có nhiều trường hợp
tệp được khôi phục, tệp được lưu gần đây nhất sẽ được phục hồi, và
thông báo thông tin rằng có các phiên bản trước của tệp có thể được khôi phục
sẽ được viết. Nếu không có thông tin khôi phục về một tệp có sẵn, một thông tin
thông báo cho hiệu ứng này sẽ được viết, và việc chỉnh sửa sẽ tiến hành như bình thường.

Nếu −c tùy chọn đã được chỉ định, lần đầu tiên một tệp đã tồn tại (bao gồm
tệp có thể không tồn tại nhưng thông tin khôi phục có sẵn, khi −r
tùy chọn được chỉ định) thay thế hoặc khởi tạo nội dung của bộ đệm chỉnh sửa, hiện tại
dòng sẽ được đặt thành dòng cuối cùng của bộ đệm chỉnh sửa, cột hiện tại sẽ được đặt thành
không , và ex các lệnh được chỉ định với −c tùy chọn sẽ được thực hiện. Trong này
trường hợp, dòng hiện tại và cột hiện tại sẽ không được đặt như mô tả cho lệnh
liên quan đến việc thay thế hoặc khởi tạo nội dung bộ đệm chỉnh sửa. Tuy nhiên, nếu
các −t tùy chọn hoặc một tag lệnh được liên kết với hành động này, −c lệnh tùy chọn
sẽ được thực hiện và sau đó chuyển động đến thẻ sẽ được thực hiện.

Danh sách đối số hiện tại ban đầu sẽ được đặt thành tên tệp do người dùng chỉ định trên
dòng lệnh. Nếu không có tên tệp nào được chỉ định bởi người dùng, danh sách đối số hiện tại
sẽ trống. Nếu −t tùy chọn đã được chỉ định, nó không được xác định cho dù bất kỳ tên tệp nào
kết quả từ quá trình xử lý thẻ sẽ được thêm vào danh sách đối số hiện tại. Trong trường hợp
trong đó tên tệp được thêm làm tiền tố vào danh sách đối số hiện tại, đối số hiện tại
tham chiếu danh sách sẽ được đặt thành tên tệp đó. Trong trường hợp tên tệp không được thêm vào
làm tiền tố cho danh sách đối số hiện tại, tham chiếu danh sách đối số hiện tại sẽ
được đặt một cách hợp lý trước tên tệp đầu tiên được chỉ định trên dòng lệnh (đối với
ví dụ, một tiếp theo ex tiếp theo lệnh sẽ chỉnh sửa tên tệp đầu tiên từ lệnh
hàng). Nếu −t tùy chọn không được chỉ định, tham chiếu danh sách đối số hiện tại sẽ là
tên tệp đầu tiên trên dòng lệnh.

Giải quyết in ex
Địa chỉ trong ex liên quan đến dòng hiện tại và cột hiện tại; địa chỉ của một dòng
là số dòng dựa trên 1 của nó, địa chỉ của cột là số dựa trên 1 của nó từ
đầu dòng. Nói chung, dòng hiện tại là dòng cuối cùng bị ảnh hưởng bởi một lệnh.
Số dòng hiện tại là địa chỉ của dòng hiện tại. Trong mỗi mô tả lệnh,
ảnh hưởng của lệnh đến số dòng hiện tại và cột hiện tại được mô tả.

Địa chỉ được xây dựng như sau:

1. Nhân vật '.' (dấu chấm) sẽ giải quyết dòng hiện tại.

2. Nhân vật '$' sẽ giải quyết dòng cuối cùng của bộ đệm chỉnh sửa.

3. Số thập phân dương n sẽ giải quyết ndòng thứ của bộ đệm chỉnh sửa.

4. Địa chỉ "x" đề cập đến dòng được đánh dấu bằng ký tự tên nhãn 'NS', Mà
sẽ là một ký tự viết thường từ bộ ký tự di động, ký tự backquote,
hoặc ký tự trích dẫn đơn. Sẽ là một lỗi nếu dòng không được đánh dấu
hiện có trong bộ đệm chỉnh sửa hoặc dấu chưa được đặt. Các dòng có thể được đánh dấu
với ex dấu or k lệnh, hoặc vi m chỉ huy.

5. Một biểu thức chính quy được bao bởi nhân vật ('/') sẽ giải quyết dòng đầu tiên
được tìm thấy bằng cách tìm kiếm chuyển tiếp từ dòng sau dòng hiện tại đến cuối
vùng đệm chỉnh sửa và dừng ở dòng đầu tiên mà dòng không bao gồm
chấm dứt khớp với biểu thức chính quy. Như đã nêu trong Đều đặn Biểu thức
in ex, một địa chỉ bao gồm một biểu thức chính quy rỗng được phân tách bằng
nhân vật ("//") sẽ giải quyết dòng tiếp theo mà dòng không bao gồm
chấm dứt khớp với biểu thức chính quy cuối cùng gặp phải. Ngoài,
thư hai có thể được bỏ qua ở cuối dòng lệnh. Nếu kết thúc quét chỉnh sửa
tùy chọn được thiết lập, tìm kiếm sẽ bao quanh phần đầu của bộ đệm chỉnh sửa và
tiếp tục lên đến và bao gồm cả dòng hiện tại, để toàn bộ bộ đệm chỉnh sửa là
đã tìm kiếm. Trong biểu thức chính quy, chuỗi "\ /" sẽ đại diện cho một chữ
thay vì dấu phân cách biểu thức chính quy.

6. Một biểu thức chính quy được bao gồm trong nhân vật ('?') sẽ giải quyết
dòng đầu tiên được tìm thấy bằng cách tìm kiếm ngược từ dòng trước dòng hiện tại
về phía đầu của bộ đệm chỉnh sửa và dừng lại ở dòng đầu tiên mà
dòng trừ phần kết thúc khớp với biểu thức chính quy. Một địa chỉ
bao gồm một biểu thức chính quy null được phân cách bằng nhân vật ("??")
sẽ giải quyết dòng trước đó mà dòng không bao gồm phần cuối
khớp với biểu thức chính quy cuối cùng gặp phải. Ngoài ra, thứ hai
Dấu> có thể được bỏ qua ở cuối dòng lệnh. Nếu kết thúc quét tùy chọn chỉnh sửa được đặt,
tìm kiếm sẽ bao quanh từ đầu của bộ đệm chỉnh sửa đến cuối của
chỉnh sửa bộ đệm và tiếp tục lên đến và bao gồm cả dòng hiện tại, để toàn bộ chỉnh sửa
bộ đệm được tìm kiếm. Trong biểu thức chính quy, chuỗi "\?" sẽ đại diện cho một
theo nghĩa đen thay vì dấu phân cách RE.

7. A ('+') hoặc dấu trừ ('-') theo sau là một số thập phân sẽ giải quyết
dòng hiện tại cộng hoặc trừ số. MỘT '+' or '-' không theo sau bởi một số thập phân
số sẽ giải quyết dòng hiện tại cộng hoặc trừ 1.

Các địa chỉ có thể được theo sau bằng XNUMX hoặc nhiều khoảng cách địa chỉ, tùy chọn -ly thân.
Hiệu số địa chỉ được xây dựng như sau:

1. Các '+' or '-' ngay sau đó là một số thập phân sẽ cộng (trừ)
số dòng được chỉ định đến (từ) địa chỉ. MỘT '+' or '-' không được theo sau bởi một
số thập phân sẽ cộng (trừ) 1 vào (từ) địa chỉ.

2. Một số thập phân sẽ thêm số dòng được chỉ định vào địa chỉ.

Sẽ không có lỗi khi giá trị địa chỉ trung gian nhỏ hơn XNUMX hoặc lớn hơn
so với dòng cuối cùng trong bộ đệm chỉnh sửa. Sẽ là một lỗi đối với giá trị địa chỉ cuối cùng
nhỏ hơn XNUMX hoặc lớn hơn dòng cuối cùng trong bộ đệm chỉnh sửa.

Các lệnh lấy số không, một hoặc hai địa chỉ; xem các mô tả của 1addr2addr in
Lệnh Mô tả in ex. Nếu nhiều hơn số lượng địa chỉ cần thiết được cung cấp cho
một lệnh yêu cầu không địa chỉ, nó sẽ là một lỗi. Ngược lại, nếu nhiều hơn
số lượng địa chỉ cần thiết được cung cấp cho một lệnh, các địa chỉ được chỉ định trước
sẽ được đánh giá và sau đó bị loại bỏ cho đến khi còn lại số lượng địa chỉ hợp lệ tối đa.

Các địa chỉ sẽ được phân tách với nhau bằng một (',') hoặc một (';').
Nếu không có địa chỉ nào được chỉ định trước hoặc sau một hoặc là dải phân cách, nó sẽ là
như thể địa chỉ của dòng hiện tại được chỉ định trước hoặc sau dấu phân tách. bên trong
trường hợp của một dấu phân cách, dòng hiện tại ('.') sẽ được đặt thành đầu tiên
địa chỉ, và chỉ sau đó địa chỉ tiếp theo mới được tính toán. Tính năng này có thể được sử dụng để
xác định dòng bắt đầu cho các tìm kiếm chuyển tiếp và tìm kiếm ngược (xem quy tắc 5. và 6.).

MỘT ('%') sẽ tương đương với việc nhập hai địa chỉ "1, $".

Mọi phân định các ký tự giữa các địa chỉ, dấu phân tách địa chỉ hoặc địa chỉ
phần bù sẽ bị loại bỏ.

Lệnh Dòng Phân tích cú pháp in ex
Biểu tượng sau được sử dụng trong phần này và các phần sau để mô tả hành vi phân tích cú pháp:

thoát Nếu một ký tự được gọi là `` -escaped '' hoặc '' ‐V-
thoát khỏi '', nó có nghĩa là ký tự có được hoặc mất đi một ý nghĩa đặc biệt
do đứng trước, tương ứng, bởi hoặc là ‐V
tính cách. Trừ khi có quy định khác, ký tự thoát sẽ bị loại bỏ
tại thời điểm đó và sẽ không được xem xét thêm vì bất kỳ mục đích nào.

Việc phân tích cú pháp dòng lệnh sẽ được thực hiện theo các bước sau. Đối với mỗi bước, các ký tự
đã được đánh giá sẽ bị bỏ qua; nghĩa là, cụm từ `` nhân vật hàng đầu '' đề cập đến
ký tự tiếp theo chưa được đánh giá.

1. Dẫn đầu các ký tự sẽ được bỏ qua.

2. Dẫn đầu các ký tự sẽ được bỏ qua.

3. Nếu ký tự đứng đầu là ký tự dấu ngoặc kép, các ký tự lên đến và
bao gồm cả những thứ tiếp theo không -scaped sẽ bị loại bỏ, và bất kỳ
các ký tự tiếp theo sẽ được phân tích cú pháp thành một lệnh riêng biệt.

4. Các ký tự hàng đầu có thể được hiểu là địa chỉ sẽ được đánh giá; Thấy chưa
Giải quyết in ex.

5. Dẫn đầu các ký tự sẽ được bỏ qua.

6. Nếu ký tự tiếp theo là một nhân vật hoặc một :

Một. Nếu ký tự tiếp theo là :

tôi. Nếu như ex đang ở chế độ mở hoặc chế độ trực quan, dòng hiện tại sẽ được đặt thành dòng cuối cùng
địa chỉ được chỉ định, nếu có.

ii. Ngược lại, nếu lệnh cuối cùng được kết thúc bởi tính cách,
không có hành động nào được thực hiện; ví dụ, lệnh "|| " phải
thực hiện hai lệnh ngụ ý, không phải ba.

iii. Nếu không, bước 6.b. sẽ được áp dụng.

b. Nếu không, lệnh ngụ ý sẽ là in yêu cầu. Cuối cùng #, pl
cờ được chỉ định cho bất kỳ ex lệnh sẽ được ghi nhớ và sẽ áp dụng cho điều này
mệnh lệnh ngụ ý. Thực hiện ex con số, in, hoặc là lệnh sẽ thiết lập
cờ nhớ để #, không có gì và ltương ứng, cùng với bất kỳ cờ nào khác
được chỉ định cho việc thực thi con số, in, hoặc là chỉ huy.

If ex hiện không thực hiện một toàn cầu or v lệnh, và không có địa chỉ hoặc số lượng
được chỉ định, dòng hiện tại sẽ được tăng lên 1 trước khi lệnh
Thực thi. Nếu tăng dòng hiện tại sẽ dẫn đến một địa chỉ vượt qua
dòng cuối cùng trong bộ đệm chỉnh sửa, lệnh sẽ không thành công và số gia sẽ không
xảy ra.

C. Các hoặc là ký tự sẽ bị loại bỏ và bất kỳ
các ký tự sẽ được phân tích cú pháp như một lệnh riêng biệt.

7. Tên lệnh phải bao gồm ký tự tiếp theo (nếu ký tự không
bảng chữ cái), hoặc ký tự tiếp theo và bất kỳ ký tự chữ cái tiếp theo nào (nếu
ký tự là bảng chữ cái), với các ngoại lệ sau:

Một. Các lệnh bao gồm bất kỳ tiền tố nào của các ký tự trong tên lệnh xóa,
theo sau là bất kỳ ký tự nào 'l', 'P', '+', '-', hoặc là '#' sẽ
được giải thích như một xóa lệnh, theo sau là một , theo sau là các ký tự
không phải là một phần của tiền tố của xóa yêu cầu. Số lượng tối đa của
các ký tự sẽ được khớp với tên lệnh xóa; ví dụ, "del" phải
không được coi là "de" tiếp theo là lá cờ l.

b. Các lệnh bao gồm ký tự 'k', theo sau là một ký tự có thể là
được sử dụng như tên của một nhãn hiệu, sẽ tương đương với lệnh đánh dấu theo sau bởi
, theo sau là ký tự theo sau 'k'.

C. Các lệnh bao gồm ký tự 'NS', theo sau là các ký tự có thể là
được hiểu là các tùy chọn hợp lệ cho s lệnh, sẽ tương đương với s
lệnh, không có bất kỳ mẫu hoặc giá trị thay thế nào, theo sau là ,
theo sau là các ký tự sau 'NS'.

8. Tên lệnh phải được so khớp với các tên lệnh có thể có và một lệnh
tên có chứa tiền tố khớp với các ký tự do người dùng chỉ định sẽ là
lệnh đã thực thi. Trong trường hợp các lệnh mà các ký tự được chỉ định bởi người dùng
có thể không rõ ràng, lệnh được thực thi sẽ như sau:

┌───┬─────────┬┬───┬────────┬┬───┬───────┐
athêm ││ntiếp theo ││tt
cthay đổi ││pin ││ulùi lại
chthay đổi ││prin ││unlùi lại
echỉnh sửa ││rđọc ││vv
mdi chuyển ││ređọc ││wviết
madấu ││ss ││ │ │
└───┴─────────┴┴───┴────────┴┴───┴───────┘
Các phần mở rộng triển khai có tên gây ra sự mơ hồ tương tự sẽ không được kiểm tra
cho một trận đấu cho đến khi tất cả các trận đấu có thể có cho các lệnh được chỉ định bởi POSIX.1‐2008 có
đã được kiểm tra.

9. Nếu lệnh là ! lệnh hoặc nếu lệnh là đọc lệnh theo sau bởi số không
Hoặc nhiều hơn ký tự và một !hoặc nếu lệnh là viết lệnh theo sau bởi
một hoặc nhiều ký tự và một !, phần còn lại của lệnh sẽ bao gồm tất cả
ký tự cho đến không -scaped . Các sẽ
bị loại bỏ và mọi ký tự tiếp theo sẽ được phân tích cú pháp riêng biệt ex chỉ huy.

10. Ngược lại, nếu lệnh là một chỉnh sửa, ex, hoặc là tiếp theo lệnh, hoặc một trực quan chỉ huy trong khi
ở chế độ mở hoặc chế độ trực quan, phần tiếp theo của lệnh sẽ được phân tích cú pháp như sau:

Một. Bất kì '!' ký tự ngay sau lệnh sẽ bị bỏ qua và là một phần
của lệnh.

b. Bất kỳ hàng đầu các ký tự sẽ được bỏ qua và là một phần của lệnh.

C. Nếu ký tự tiếp theo là '+', các ký tự cho đến ký tự đầu tiên không phải -scaped
hoặc không -scaped sẽ được bỏ qua và là một phần của
chỉ huy.

d. Phần còn lại của lệnh sẽ được xác định theo các bước được chỉ định trong đoạn
12.

11. Ngược lại, nếu lệnh là toàn cầu, mở, s, hoặc là v lệnh, phần tiếp theo của
lệnh sẽ được phân tích cú pháp như sau:

Một. Bất kỳ hàng đầu các ký tự sẽ được bỏ qua và là một phần của lệnh.

b. Nếu ký tự tiếp theo không phải là chữ và số, dấu ngoặc kép, ,
, hoặc là tính cách:

tôi. Ký tự tiếp theo sẽ được sử dụng làm dấu phân cách lệnh.

ii. Nếu lệnh là toàn cầu, mở, hoặc là v lệnh, ký tự lên đến đầu tiên
không -scaped , hoặc đầu tiên không -scaped phân cách
ký tự, sẽ được bỏ qua và là một phần của lệnh.

iii. Nếu lệnh là một s lệnh, ký tự lên đến đầu tiên
không -scaped , hoặc thứ hai không -scaped
ký tự phân tách, sẽ được bỏ qua và là một phần của lệnh.

C. Nếu lệnh là toàn cầu or v lệnh, ký tự lên đến đầu tiên
không -scaped sẽ được bỏ qua và là một phần của lệnh.

d. Nếu không, phần còn lại của lệnh sẽ được xác định theo các bước được chỉ định trong
đoạn 12.

12. Nếu không:

Một. Nếu lệnh là một bản đồ, bỏ bản đồ, viết tắt, hoặc là không viết tắt lệnh, ký tự
cho đến đầu tiên không ‐V-thoát , , hoặc gấp đôi-
ký tự trích dẫn sẽ được bỏ qua và là một phần của lệnh.

b. Nếu không, các ký tự cho đến ký tự đầu tiên không phải -scaped ,
, hoặc ký tự dấu ngoặc kép sẽ được bỏ qua và là một phần của
chỉ huy.

C. Nếu lệnh là một thêm, thay đổi, hoặc là chèn và bước 12.b. đã kết thúc
tại một ký tự, bất kỳ ký tự tiếp theo nào, cho đến ký tự tiếp theo
không -scaped sẽ được sử dụng làm văn bản đầu vào cho lệnh.

d. Nếu lệnh được kết thúc bằng ký tự dấu ngoặc kép, tất cả các ký tự tiếp theo,
cho đến không tiếp theo -scaped , sẽ bị loại bỏ.

e. Sự kết thúc hoặc là ký tự sẽ bị loại bỏ và bất kỳ
các ký tự tiếp theo sẽ được phân tích cú pháp riêng biệt ex chỉ huy.

Các đối số lệnh sẽ được phân tích cú pháp như được mô tả bởi Tóm tắt và Mô tả của từng
hệ thống riêng biệt, ex yêu cầu. Phân tích cú pháp này sẽ không - nhạy cảm, ngoại trừ !
đối số phải tuân theo tên lệnh mà không can thiệp vào ký tự và
nếu không thì nó sẽ mơ hồ. Ví dụ, tínhcờ đối số không cần phải
-tách biệt bởi vì "d22p" không mơ hồ, nhưng hồ sơ đối số với ex tiếp theo
lệnh phải được phân tách bằng một hoặc nhiều nhân vật. Bất kì chỉ huy
đối số cho viết tắt, không viết tắt, bản đồbỏ bản đồ lệnh có thể được ‐V-
trốn thoát, trong trường hợp đó sẽ không được sử dụng làm dấu phân cách đối số. Bất kì
trong đối số lệnh cho bất kỳ lệnh nào khác có thể -escaped, trong trường hợp đó
điều đó sẽ không được sử dụng làm dấu phân cách đối số.

Trong các đối số lệnh cho viết tắt, không viết tắt, bản đồbỏ bản đồ lệnh, bất kỳ
nhân vật có thể được ‐V-thoát. Tất cả các ký tự thoát như vậy sẽ được xử lý
theo nghĩa đen và sẽ không có ý nghĩa đặc biệt. Trong các đối số lệnh cho tất cả các đối số khác ex
các lệnh không phải là biểu thức chính quy hoặc chuỗi thay thế, bất kỳ ký tự nào sẽ
nếu không có một ý nghĩa đặc biệt có thể được -có cảnh quan. Các ký tự đã thoát sẽ là
được xử lý theo nghĩa đen, không có ý nghĩa đặc biệt như các ký tự mở rộng shell hoặc '!', '%'
'#' ký tự mở rộng. Nhìn thấy Đều đặn Biểu thức in exThay thế Strings in ex cho
mô tả các đối số lệnh là biểu thức chính quy hoặc chuỗi thay thế.

Không -scaped '%' nhân vật xuất hiện trong hồ sơ đối số với bất kỳ ex lệnh sẽ
được thay thế bằng tên đường dẫn hiện tại; không thoát '#' các ký tự sẽ được thay thế bằng
tên đường dẫn thay thế. Sẽ là một lỗi nếu '%' or '#' các ký tự xuất hiện không thoát trong một
đối số và các giá trị tương ứng của chúng không được đặt.

Không -scaped '!' các ký tự trong các đối số cho ex ! lệnh hoặc
chế độ mở và hình ảnh ! hoặc trong các đối số của ex đọc lệnh, nơi
đầu tiên không sau tên lệnh là một '!' hoặc trong các đối số của
ex viết lệnh trong đó tên lệnh được theo sau bởi một hoặc nhiều nhân vật và
người đầu tiên không sau tên lệnh là một '!' ký tự, sẽ được thay thế bằng
các đối số đến lệnh cuối cùng của ba lệnh đó khi chúng xuất hiện sau khi tất cả các lệnh không thoát
'%', '#''!' các ký tự đã được thay thế. Sẽ là một lỗi nếu '!' nhân vật
xuất hiện không thoát khỏi một trong các lệnh này và không có lần thực hiện nào trước đó đối với một
của các lệnh này.

Nếu một lỗi xảy ra trong quá trình phân tích cú pháp hoặc thực thi một ex chỉ huy:

* Một thông điệp cung cấp thông tin về hiệu ứng này sẽ được viết. Thực hiện ex lệnh
sẽ dừng lại và con trỏ (ví dụ: dòng và cột hiện tại) sẽ không
sửa đổi thêm.

* Nếu ex lệnh được tạo ra từ việc mở rộng bản đồ, tất cả các ký tự từ bản đồ đó
sự mở rộng sẽ bị loại bỏ, trừ khi được quy định khác bởi bản đồ chỉ huy.

* Ngược lại, nếu ex lệnh được tạo ra từ việc xử lý một XUẤT CẢNH môi trường
biến, một .exrc tập tin :nguồn lệnh, một −c tùy chọn, hoặc một +lệnh được chỉ định cho một
ex chỉnh sửa, ex, tiếp theo, hoặc là trực quan lệnh, không có lệnh nào khác từ nguồn của
lệnh sẽ được thực hiện.

* Ngược lại, nếu ex lệnh được tạo ra từ việc thực thi một bộ đệm hoặc một toàn cầu or v
lệnh, không có lệnh nào khác gây ra bởi việc thực thi bộ đệm hoặc toàn cầu or v
lệnh sẽ được thực hiện.

* Ngược lại, nếu ex lệnh không được kết thúc bởi một , tất cả các ký tự cho đến
và bao gồm không tiếp theo -scaped sẽ bị loại bỏ.

Đầu vào Chỉnh sửa in ex
Biểu tượng sau được sử dụng trong phần này và các phần sau để chỉ định lệnh
hành động:

lời Trong ngôn ngữ POSIX, một từ bao gồm một chuỗi tối đa các chữ cái, chữ số,
và gạch dưới, được phân tách ở cả hai đầu bằng các ký tự không phải là chữ cái,
chữ số, hoặc dấu gạch dưới, hoặc ở đầu hoặc cuối dòng hoặc vùng đệm chỉnh sửa.

Khi chấp nhận các ký tự đầu vào từ người dùng, trong ex chế độ lệnh hoặc ex nhập văn bản
chế độ, ex sẽ cho phép xử lý đầu vào chế độ chuẩn, như được định nghĩa trong Giao diện hệ thống
khối lượng của POSIX.1‐2008.

Nếu trong ex chế độ nhập văn bản:

1. Nếu các con số tùy chọn chỉnh sửa được đặt, ex sẽ nhắc nhập bằng cách sử dụng số dòng
sẽ được gán cho dòng nếu nó được nhập, theo định dạng được chỉ định cho ex
con số chỉ huy.

2. Nếu các tự chủ tùy chọn chỉnh sửa được đặt, ex sẽ nhắc đầu vào bằng cách sử dụng tự chủ
các ký tự, như được mô tả bởi tự chủ chỉnh sửa tùy chọn. tự chủ ký tự sẽ
theo số dòng, nếu có.

Nếu trong ex chế độ lệnh:

1. Nếu các nhanh chóng tùy chọn chỉnh sửa được thiết lập, đầu vào sẽ được nhắc sử dụng một ':'
tính cách; nếu không, sẽ không có lời nhắc.

Các ký tự đầu vào trong các phần sau sẽ có các tác dụng sau đây đối với
dòng đầu vào.

cuộn giấy
toát yếu:
ôi

Xem mô tả của tại biển ôi nhân vật trong tại biển.

Nếu trong ex chế độ lệnh:

Nếu ôi ký tự là ký tự đầu tiên được nhập trên dòng, dòng sẽ là
được đánh giá như thể nó chứa hai ký tự: a ‐D và a .

Nếu không ôi ký tự sẽ không có ý nghĩa đặc biệt.

Nếu trong ex chế độ nhập văn bản:

Nếu con trỏ theo sau một tự chủ nhân vật, tự chủ nhân vật trong
dòng sẽ được sửa đổi để một phần của ký tự nhập văn bản tiếp theo sẽ là
hiển thị trên cột đầu tiên trong dòng sau dịch chuyển chỉnh sửa tùy chọn
ranh giới cột và người dùng sẽ được nhắc nhập lại cho cùng một dòng.

Ngược lại, nếu con trỏ theo sau '0', theo sau một tự chủ nhân vật và
các '0' là ký tự nhập văn bản trước đó, '0' và tất cả tự chủ
các ký tự trong dòng sẽ bị loại bỏ và người dùng sẽ được nhắc lại về
đầu vào cho cùng một dòng.

Ngược lại, nếu con trỏ theo sau '^', theo sau một tự chủ nhân vật và
các '^' là ký tự nhập văn bản trước đó, '^' và tất cả tự chủ
các ký tự trong dòng sẽ bị loại bỏ và người dùng sẽ được nhắc lại về
đầu vào cho cùng một dòng. Ngoài ra, tự chủ mức cho dòng đầu vào tiếp theo
sẽ được bắt nguồn từ cùng một dòng mà từ đó tự chủ mức cho hiện tại
dòng đầu vào đã được dẫn xuất.

Ngược lại, nếu không có tự chủ hoặc các ký tự nhập văn bản trong dòng, ôi
ký tự sẽ bị loại bỏ.

Nếu không ôi ký tự sẽ không có ý nghĩa đặc biệt.


toát yếu:

-J

Nếu trong ex chế độ lệnh:

Nguyên nhân dòng lệnh được phân tích cú pháp; ‐J sẽ được ánh xạ tới
vì mục đích này.

Nếu trong ex chế độ nhập văn bản:

Ngắt dòng hiện tại. Nếu không có ký tự nào khác ngoài tự chủ
các ký tự trên dòng, tất cả các ký tự trên dòng sẽ bị loại bỏ.

Nhắc nhập văn bản trên một dòng mới sau dòng hiện tại. Nếu tự chủ chỉnh sửa
tùy chọn được thiết lập, một số lượng thích hợp tự chủ các ký tự sẽ được thêm vào dưới dạng
tiền tố vào dòng như được mô tả bởi ex tự chủ chỉnh sửa tùy chọn.


toát yếu:


Cho phép nhập cảnh tiếp theo hoặc là ‐J như một ký tự nghĩa đen, loại bỏ
bất kỳ ý nghĩa đặc biệt nào mà nó có thể có đối với trình soạn thảo trong chế độ nhập văn bản. Các
ký tự sẽ được giữ lại và đánh giá khi dòng lệnh được phân tích cú pháp hoặc được giữ lại và
được đưa vào khi văn bản đầu vào trở thành một phần của bộ đệm chỉnh sửa.

‐V
toát yếu:
-V

Cho phép nhập bất kỳ ký tự tiếp theo nào dưới dạng ký tự chữ, xóa bất kỳ ký tự đặc biệt nào
nghĩa là nó có thể phải chỉnh sửa trong chế độ nhập văn bản. Các Ký tự ‐V
sẽ bị loại bỏ trước khi dòng lệnh được phân tích cú pháp hoặc văn bản đầu vào trở thành một phần của
chỉnh sửa bộ đệm.

Nếu chức năng `` tiếp theo theo nghĩa đen '' được thực hiện bởi hệ thống cơ bản, thì đó là
triển khai được xác định xem một ký tự khác ‐V thực hiện chức năng này.

‐W
toát yếu:
-W

Bỏ đi ‐W và từ trước nó trong dòng nhập, bao gồm bất kỳ
các ký tự theo sau từ và đứng trước ‐W. Nếu từ ``
chức năng xóa '' được thực hiện bởi hệ thống cơ bản, nó được xác định bởi việc triển khai
cho dù một nhân vật khác với ‐W thực hiện chức năng này.

Lệnh Mô tả in ex
Các ký hiệu sau được sử dụng trong phần này để biểu thị các bổ ngữ lệnh. Một số
các bổ trợ này có thể được bỏ qua, trong trường hợp đó, các giá trị mặc định đã chỉ định sẽ được sử dụng.

1addr Một địa chỉ dòng đơn, được cung cấp trong bất kỳ hình thức nào được mô tả trong Giải quyết in ex;
mặc định sẽ là dòng hiện tại ('.'), trừ khi được quy định khác.

Nếu địa chỉ dòng bằng XNUMX, nó sẽ là một lỗi, trừ khi được chỉ định khác trong
các mô tả lệnh sau đây.

Nếu bộ đệm chỉnh sửa trống và địa chỉ được chỉ định bằng lệnh khác
hơn =, thêm, chèn, mở, đặt, đọc, hoặc là trực quanhoặc địa chỉ không phải là số không,
nó sẽ là một lỗi.

2addr Hai địa chỉ xác định một phạm vi bao gồm các dòng. Nếu không có địa chỉ
được chỉ định, mặc định cho 2addr sẽ chỉ là dòng hiện tại (".,."), trừ phi
nếu không được chỉ định trong các mô tả lệnh sau. Nếu một địa chỉ là
chỉ định, 2addr sẽ chỉ xác định dòng đó, trừ khi có quy định khác trong
các mô tả lệnh sau.

Sẽ là một lỗi nếu địa chỉ đầu tiên lớn hơn địa chỉ thứ hai.

Nếu bộ đệm chỉnh sửa trống và hai địa chỉ được chỉ định bằng một lệnh
khác hơn !, viết, wq, hoặc là xit lệnh hoặc một trong hai địa chỉ không phải là số không, nó
sẽ là một lỗi.

tính Một số thập phân dương. Nếu như tính được chỉ định, nó sẽ tương đương với
chỉ định một địa chỉ bổ sung cho lệnh, trừ khi được chỉ định khác bởi
các mô tả lệnh sau đây. Địa chỉ bổ sung sẽ bằng
địa chỉ cuối cùng được chỉ định cho lệnh (rõ ràng hoặc theo mặc định) cộng với
tính−1.

Nếu điều này sẽ dẫn đến một địa chỉ lớn hơn dòng cuối cùng của bản chỉnh sửa
đệm, nó sẽ được hiệu chỉnh để bằng với dòng cuối cùng của bộ đệm chỉnh sửa.

cờ Một hoặc nhiều ký tự '+', '-', '#', 'P', hoặc là 'l' (ell). Lá cờ
nhân vật có thể được -riêng biệt, và theo bất kỳ thứ tự hoặc kết hợp nào. Các
nhân vật '#', 'P''l' sẽ khiến các dòng được viết theo định dạng
được chỉ định bởi in lệnh với chỉ định cờ.

Các dòng được viết như sau:

1. Tất cả các dòng đệm chỉnh sửa được viết trong quá trình thực thi ex &, ~, ,
con số, mở, in, s, trực quanz các lệnh sẽ được viết như được chỉ định
by cờ.

2. Sau khi hoàn thành một ex lệnh với cờ làm đối số,
dòng hiện tại sẽ được viết như được chỉ định bởi cờ, trừ khi dòng hiện tại
là dòng cuối cùng được viết bởi lệnh.

Các nhân vật '+''-' gây ra giá trị của dòng hiện tại sau
thực hiện ex lệnh được điều chỉnh bằng địa chỉ offset như được mô tả trong
Giải quyết in ex. Điều chỉnh này sẽ xảy ra trước khi dòng hiện tại
được viết như mô tả trong 2. ở trên.

Mặc định cho cờ sẽ không có.

đệm Một trong số các khu vực được đặt tên để lưu giữ văn bản. Các bộ đệm được đặt tên được chỉ định
bởi các ký tự chữ và số của ngôn ngữ POSIX. Cũng sẽ có một
bộ đệm `` không tên ''. Khi không có bộ đệm nào được chỉ định cho các lệnh soạn thảo sử dụng
đệm, bộ đệm không tên sẽ được sử dụng. Các lệnh lưu trữ văn bản vào bộ đệm
sẽ lưu trữ văn bản như trước khi lệnh có hiệu lực, và sẽ lưu trữ
văn bản xuất hiện sớm hơn trong tệp trước khi văn bản xuất hiện sau đó trong tệp,
bất kể vùng văn bản đã được chỉ định như thế nào. Các lệnh lưu trữ văn bản vào
bộ đệm sẽ lưu văn bản vào bộ đệm không tên cũng như bất kỳ
đệm.

In ex lệnh, tên bộ đệm được chỉ định như tên của chính nó. Đang mở hoặc
lệnh chế độ trực quan tên được đặt trước bởi một dấu ngoặc kép ('' ') tính cách.

Nếu tên bộ đệm được chỉ định là một ký tự viết hoa và nội dung bộ đệm
sẽ được sửa đổi, bộ đệm sẽ được thêm vào thay vì
bị ghi đè. Nếu bộ đệm không được sửa đổi, chỉ định tên bộ đệm trong
chữ thường và chữ hoa sẽ có kết quả giống hệt nhau.

Cũng sẽ có các vùng đệm được đặt tên theo các số từ 1 đến 9. Ở chế độ mở và trực quan
chế độ, nếu một vùng văn bản bao gồm các ký tự từ nhiều hơn một dòng là
được sửa đổi bởi vi c or d các lệnh, ký tự chuyển động được liên kết với
các c or d lệnh chỉ định rằng văn bản đệm phải ở chế độ dòng, hoặc
lệnh %, `, /, ?, (, ), N, n, {, hoặc là } được sử dụng để xác định một vùng văn bản cho
các c or d lệnh, nội dung của bộ đệm từ 1 đến 8 sẽ được chuyển vào
bộ đệm được đặt tên bởi giá trị lớn hơn bằng số tiếp theo, nội dung của bộ đệm 9
sẽ bị loại bỏ và vùng văn bản sẽ được sao chép vào vùng đệm 1. Điều này
Ngoài việc sao chép văn bản vào bộ đệm do người dùng chỉ định hoặc không được đặt tên
đệm, hoặc cả hai. Bộ đệm số có thể được chỉ định làm bộ đệm nguồn để mở
và các lệnh chế độ trực quan; tuy nhiên, chỉ định một bộ đệm số làm ghi
mục tiêu của lệnh chế độ mở hoặc chế độ trực quan phải có kết quả không xác định.

Văn bản của mỗi vùng đệm phải có đặc điểm là ở một trong hai dòng hoặc
chế độ ký tự. Việc thêm văn bản vào vùng đệm không trống sẽ đặt chế độ phù hợp
đặc điểm của văn bản được thêm vào. Thêm văn bản vào bộ đệm sẽ
gây ra việc tạo ra ít nhất một dòng bổ sung trong bộ đệm. Tất cả văn bản
được lưu trữ vào bộ đệm bởi ex lệnh sẽ ở chế độ dòng. Các ex lệnh đó
sử dụng bộ đệm làm nguồn văn bản chỉ định riêng cách bộ đệm khác nhau
các chế độ được xử lý. Mỗi lệnh chế độ mở hoặc chế độ trực quan sử dụng bộ đệm cho bất kỳ
mục đích chỉ định riêng chế độ của văn bản được lưu trữ trong bộ đệm và
cách xử lý bộ đệm của các chế độ khác nhau.

hồ sơ Văn bản lệnh được sử dụng để lấy tên đường dẫn. Mặc định sẽ là dòng điện
tên đường dẫn, như đã xác định trước đây, trong trường hợp này, nếu chưa có tên đường dẫn hiện tại nào
được thiết lập, nó sẽ là một lỗi, trừ khi được ghi chú cụ thể trong
mô tả lệnh riêng lẻ theo sau. Nếu văn bản lệnh chứa bất kỳ
của các nhân vật '~', '{', '[', '*', '?', '$', '' ', trích dẫn ngược, trích dẫn đơn,
và , nó sẽ phải trải qua quá trình `` mở rộng vỏ '',
như mô tả dưới đây; nếu có nhiều hơn một tên đường dẫn duy nhất thì kết quả và lệnh
chỉ mong đợi một, nó sẽ là một lỗi.

Quá trình mở rộng shell trong trình soạn thảo sẽ được thực hiện như sau. Các ex
tiện ích sẽ chuyển hai đối số cho chương trình được đặt tên bởi tùy chọn chỉnh sửa trình bao;
người đầu tiên sẽ là −cvà thứ hai sẽ là chuỗi "tiếng vang" và lệnh
văn bản như một đối số duy nhất. Đầu ra tiêu chuẩn và lỗi tiêu chuẩn của điều đó
lệnh sẽ thay thế văn bản lệnh.

! Một ký tự có thể được thêm vào tên lệnh để sửa đổi hoạt động của nó, như
chi tiết trong các mô tả lệnh riêng lẻ. Ngoại trừ ex
đọc, viết! lệnh, '!' ký tự sẽ chỉ hoạt động như một bổ ngữ nếu
không có ký tự giữa nó và tên lệnh.

nhớ Tìm kiếm hướng
Sản phẩm vi lệnh Nn bắt đầu tìm kiếm theo hướng tiến hoặc lùi trong
bộ đệm chỉnh sửa dựa trên hướng tìm kiếm đã nhớ, ban đầu là
bỏ đặt, và được đặt bởi ex toàn cầu, v, stag lệnh và vi /?
lệnh.

Viết tắt
toát yếu:
ab [vi phạm][lh RHS]

If lhRHS không được chỉ định, hãy viết danh sách các từ viết tắt hiện tại và không làm gì cả
hơn.

Việc triển khai có thể hạn chế tập hợp các ký tự được chấp nhận trong lh or RHS, ngoại trừ việc
các ký tự in được và các ký tự sẽ không bị hạn chế. Thêm vào
các hạn chế sẽ được xác định bởi việc thực hiện.

Ở cả hai lhRHS, bất kỳ ký tự nào cũng có thể được thoát bằng ‐V, trong trường hợp đó
ký tự sẽ không được sử dụng để phân tách lh từ RHS, và trốn thoát ‐V sẽ là
bỏ đi.

Trong chế độ nhập văn bản mở và trực quan, nếu không phải từ hoặc nhân vật không được thoát
bởi một Ký tự ‐V được nhập sau một ký tự từ, một dấu kiểm sẽ được thực hiện cho
tập hợp các ký tự phù hợp lh, trong phần nhập văn bản được nhập trong lệnh này. Nếu nó là
được tìm thấy, hiệu ứng sẽ như thể RHS đã được nhập thay vì lh.

Tập hợp các ký tự được kiểm tra được xác định như sau:

1. Nếu không có ký tự nào được chèn trước từ và không phải từ hoặc nhân vật
đã kích hoạt kiểm tra, bộ ký tự sẽ bao gồm ký tự từ.

2. Nếu ký tự được chèn trước từ và không phải từ hoặc ký tự mà
kích hoạt kiểm tra là một ký tự từ, tập hợp các ký tự phải bao gồm
các ký tự được chèn ngay trước các ký tự kích hoạt là từ
ký tự, cộng với ký tự từ kích hoạt.

3. Nếu ký tự được chèn trước từ và không phải từ hoặc ký tự mà
đã kích hoạt kiểm tra không phải là một ký tự từ, tập hợp các ký tự phải bao gồm
các ký tự đã được chèn trước các ký tự kích hoạt không phải là
ký tự cũng như ký tự từ, cộng với ký tự từ kích hoạt.

Không xác định được liệu lh đối số được nhập cho ex viết tắtkhông viết tắt
các lệnh được thay thế theo kiểu này. Bất kể việc thay thế có xảy ra hay không,
Hiệu lực của lệnh sẽ như thể chưa xảy ra sự thay thế.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Nối
toát yếu:
[1addr] a[chi tiêu][!]

đăng ký hạng mục thi ex chế độ nhập văn bản; văn bản đầu vào phải được đặt sau dòng chỉ định. Nếu dòng
không được chỉ định, văn bản sẽ được đặt ở đầu bộ đệm chỉnh sửa.

Lệnh này sẽ bị ảnh hưởng bởi con sốtự chủ chỉnh sửa các tùy chọn; theo sau
tên lệnh với '!' sẽ gây ra tự chủ chỉnh sửa cài đặt tùy chọn được chuyển đổi cho
thời hạn của lệnh này chỉ.

Current hàng: Đặt đến dòng đầu vào cuối cùng; nếu không có dòng nào được nhập, hãy đặt thành
dòng hoặc dòng đầu tiên của vùng đệm chỉnh sửa nếu dòng XNUMX được chỉ định hoặc bằng XNUMX nếu
bộ đệm chỉnh sửa trống.

Current cột: Đặt thành không .

Lập luận
toát yếu:
ar [gs]

Viết danh sách đối số hiện tại, với mục nhập danh sách đối số hiện tại, nếu có, giữa '['
']' ký tự.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Thay đổi
toát yếu:
[2addr] c[hange][!][tính]

đăng ký hạng mục thi ex chế độ nhập văn bản; văn bản đầu vào sẽ thay thế các dòng được chỉ định. Các quy định
các dòng sẽ được sao chép vào bộ đệm không tên, bộ đệm này sẽ trở thành bộ đệm chế độ dòng.

Lệnh này sẽ bị ảnh hưởng bởi con sốtự chủ chỉnh sửa các tùy chọn; theo sau
tên lệnh với '!' sẽ gây ra tự chủ chỉnh sửa cài đặt tùy chọn được chuyển đổi cho
thời hạn của lệnh này chỉ.

Current hàng: Đặt đến dòng đầu vào cuối cùng; nếu không có dòng nào được nhập, hãy đặt thành dòng trước đó
địa chỉ đầu tiên hoặc đến dòng đầu tiên của bộ đệm chỉnh sửa nếu không có dòng nào trước đó
địa chỉ đầu tiên hoặc bằng XNUMX nếu bộ đệm chỉnh sửa trống.

Current cột: Đặt thành không .

Thay đổi thư mục
toát yếu:
chd [ir][!][thư mục]
cd[!][thư mục]

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

Nếu không thư mục đối số được chỉ định và TRANG CHỦ biến môi trường được đặt thành không
giá trị null và không rỗng, thư mục sẽ mặc định là giá trị có tên trong TRANG CHỦ
biến môi trường. Nếu TRANG CHỦ biến môi trường trống hoặc không được xác định,
giá trị mặc định của thư mục được xác định thực thi.

Nếu không '!' được thêm vào tên lệnh và bộ đệm chỉnh sửa đã được sửa đổi kể từ đó
lần viết hoàn chỉnh cuối cùng và tên đường dẫn hiện tại không bắt đầu bằng '/', nó sẽ là
một lỗi.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Sao chép
toát yếu:
[2addr] co[py] 1addr [cờ]
[2addr] t 1addr [cờ]

Sao chép các dòng được chỉ định sau dòng đích đã chỉ định; dòng XNUMX chỉ định rằng
các dòng sẽ được đặt ở đầu bộ đệm chỉnh sửa.

Current hàng: Đặt thành dòng cuối cùng được sao chép.

Current cột: Đặt thành không .

Xóa bỏ
toát yếu:
[2addr] d[ưu tú][đệm][tính][cờ]

Xóa các dòng được chỉ định vào một bộ đệm (mặc định là bộ đệm không tên), điều này sẽ
trở thành bộ đệm chế độ dòng.

Cờ có thể ngay sau tên lệnh; Thấy chưa Lệnh Dòng Phân tích cú pháp in ex.

Current hàng: Đặt thành dòng sau các dòng đã xóa hoặc đến dòng cuối cùng trong chỉnh sửa
đệm nếu dòng đó vượt qua phần cuối của bộ đệm chỉnh sửa hoặc bằng XNUMX nếu bộ đệm chỉnh sửa là
trống.

Current cột: Đặt thành không .

Chỉnh sửa
toát yếu:
e[nói][!][+lệnh][hồ sơ]
ex[!][+lệnh][hồ sơ]

Nếu không '!' được thêm vào tên lệnh và bộ đệm chỉnh sửa đã được sửa đổi kể từ đó
bản viết hoàn chỉnh cuối cùng, nó sẽ là một lỗi.

If hồ sơ được chỉ định, thay thế nội dung hiện tại của bộ đệm chỉnh sửa bằng nội dung hiện tại
nội dung của hồ sơvà đặt tên đường dẫn hiện tại thành hồ sơ. Nếu hồ sơ không được chỉ định, thay thế
nội dung hiện tại của bộ đệm chỉnh sửa với nội dung hiện tại của tệp được đặt tên bởi
tên đường dẫn hiện tại. Nếu vì bất kỳ lý do gì mà nội dung hiện tại của tệp không thể được truy cập,
bộ đệm chỉnh sửa sẽ trống.

Sản phẩm +lệnh lựa chọn sẽ là -delimited; các ký tự trong +lệnh có thể
được thoát khỏi bằng cách đặt trước chúng bằng một tính cách. Các +lệnh sẽ
được giải thích như một ex lệnh ngay sau khi nội dung của bộ đệm chỉnh sửa được
được thay thế và dòng và cột hiện tại đã được thiết lập.

Nếu bộ đệm chỉnh sửa trống:

Current hàng: Đặt thành 0.

Current cột: Đặt thành 1.

Ngược lại, nếu được thực thi trong khi ở ex chế độ lệnh hoặc nếu +lệnh đối số được chỉ định:

Current hàng: Đặt đến dòng cuối cùng của bộ đệm chỉnh sửa.

Current cột: Đặt thành không .

Nếu không, nếu hồ sơ bị bỏ qua hoặc dẫn đến tên đường dẫn hiện tại:

Current hàng: Đặt thành dòng đầu tiên của bộ đệm chỉnh sửa.

Current cột: Đặt thành không .

Nếu không, nếu hồ sơ giống như tệp cuối cùng được chỉnh sửa, dòng và cột sẽ được đặt
như sau; nếu tệp đã được chỉnh sửa trước đó, dòng và cột có thể được đặt như sau:

Current hàng: Đặt thành giá trị cuối cùng được giữ khi tệp đó được chỉnh sửa lần cuối. Nếu giá trị này là
không phải là dòng hợp lệ trong bộ đệm chỉnh sửa mới, hãy đặt thành dòng đầu tiên của bộ đệm chỉnh sửa.

Current cột: Nếu dòng hiện tại được đặt thành giá trị cuối cùng được giữ khi tệp là lần cuối cùng
đã chỉnh sửa, đặt thành giá trị cuối cùng được giữ khi tệp được chỉnh sửa lần cuối. Nếu không, hoặc nếu
giá trị cuối cùng không phải là một cột hợp lệ trong bộ đệm chỉnh sửa mới, được đặt thành không .

Nếu không thì:

Current hàng: Đặt thành dòng đầu tiên của bộ đệm chỉnh sửa.

Current cột: Đặt thành không .

Tập tin
toát yếu:
f[s][hồ sơ]

Nếu một hồ sơ đối số được chỉ định, tên đường dẫn thay thế sẽ được đặt thành hiện tại
tên đường dẫn và tên đường dẫn hiện tại sẽ được đặt thành hồ sơ.

Viết một tin nhắn thông tin. Nếu tệp có tên đường dẫn hiện tại, nó sẽ được bao gồm
trong tin nhắn này; nếu không, thông báo sẽ chỉ ra rằng không có tên đường dẫn hiện tại.
Nếu bộ đệm chỉnh sửa chứa các dòng, số dòng hiện tại và số dòng trong
chỉnh sửa bộ đệm sẽ được bao gồm trong thông báo này; nếu không, thông báo sẽ chỉ ra rằng
bộ đệm chỉnh sửa trống. Nếu bộ đệm chỉnh sửa đã được sửa đổi kể từ lần hoàn thành cuối cùng
viết, thực tế này sẽ được bao gồm trong tin nhắn này. Nếu chỉ đọc tùy chọn chỉnh sửa được đặt,
thực tế này sẽ được bao gồm trong thông điệp này. Tin nhắn có thể chứa những thứ khác không xác định
thông tin.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Toàn cầu
toát yếu:
[2addr] g[thùy] /Belt Hold/ [lệnh]
[2addr] v/Belt Hold/ [lệnh]

Tùy chọn '!' ký tự sau toàn cầu lệnh sẽ giống như thực hiện lệnh v
chỉ huy.

If Belt Hold trống (ví dụ: "//") hoặc không được chỉ định, biểu thức chính quy cuối cùng được sử dụng
trong lệnh soạn thảo sẽ được sử dụng như Belt Hold. Các Belt Hold có thể được phân định bằng
các ký tự (được hiển thị trong Tóm tắt nội dung), cũng như bất kỳ ký tự không phải chữ và số hoặc không phải
khác với , , , hoặc dấu ngoặc kép.

Nếu không có dòng nào được chỉ định, các dòng sẽ được đặt mặc định cho toàn bộ tệp.

Sản phẩm toàn cầuv về mặt logic là các hoạt động hai lần. Đầu tiên, đánh dấu các dòng bên trong
các dòng được chỉ định mà dòng không bao gồm phần cuối diêm
(toàn cầu) hoặc không khớp (v or toàn cầu!) mẫu đã chỉ định. Thứ hai, thực hiện ex
lệnh được đưa ra bởi lệnh, với dòng hiện tại ('.') được đặt thành từng dòng được đánh dấu. Nếu một
xảy ra lỗi trong quá trình này hoặc nội dung của bộ đệm chỉnh sửa được thay thế (đối với
ví dụ, bởi ex chỉnh sửa: lệnh) một thông báo lỗi sẽ được viết và không có lệnh nào nữa
kết quả từ việc thực hiện lệnh này sẽ được xử lý.

nhiều ex các lệnh có thể được chỉ định bằng cách nhập nhiều lệnh trên một dòng bằng cách sử dụng
Một để phân tách chúng, hoặc một trên mỗi dòng, bằng cách thoát từng với một
.

Nếu không có lệnh nào được chỉ định:

1. Nếu trong ex chế độ lệnh, nó sẽ giống như in lệnh đã được chỉ định.

2. Nếu không, sẽ không có lệnh nào được thực hiện.

Đối với thêm, thay đổichèn lệnh, văn bản đầu vào sẽ được bao gồm như một phần của
lệnh và kết thúc có thể bị bỏ qua nếu lệnh kết thúc danh sách
các lệnh. Các mởtrực quan các lệnh có thể được chỉ định là một trong các lệnh, trong đó
trong trường hợp mỗi dòng được đánh dấu sẽ khiến trình soạn thảo chuyển sang chế độ mở hoặc chế độ trực quan. Nếu mở hoặc
chế độ hình ảnh được thoát bằng cách sử dụng vi Q lệnh, dòng hiện tại sẽ được đặt thành dòng tiếp theo
dòng được đánh dấu và chế độ mở hoặc chế độ trực quan được nhập lại, cho đến khi danh sách các dòng được đánh dấu là
kiệt sức.

Sản phẩm toàn cầu, vlùi lại các lệnh không thể được sử dụng trong lệnh. Các dòng đã đánh dấu có thể bị xóa
bởi các lệnh được thực hiện cho các dòng xảy ra sớm hơn trong tệp so với các dòng được đánh dấu. Trong
trong trường hợp này, không có lệnh nào được thực hiện cho các dòng đã xóa.

Nếu hướng tìm kiếm đã nhớ không được đặt, toàn cầuv lệnh sẽ đặt nó thành
phía trước.

Sản phẩm in tự độngtự chủ các tùy chọn chỉnh sửa sẽ bị hạn chế trong thời gian của g or
v chỉ huy.

Current hàng: Nếu không có lệnh nào được thực thi, hãy đặt thành dòng được đánh dấu cuối cùng. Nếu không, như
được chỉ định cho thực thi ex lệnh.

Current cột: Nếu không có lệnh nào được thực thi, hãy đặt thành không ; nếu không, như đã chỉ định
cho cá nhân ex lệnh.

Chèn
toát yếu:
[1addr] i[chèn vào][!]

đăng ký hạng mục thi ex chế độ nhập văn bản; văn bản đầu vào phải được đặt trước dòng được chỉ định. Nếu
dòng bằng 1 hoặc XNUMX, văn bản sẽ được đặt ở đầu bộ đệm chỉnh sửa.

Lệnh này sẽ bị ảnh hưởng bởi con sốtự chủ chỉnh sửa các tùy chọn; theo sau
tên lệnh với '!' sẽ gây ra tự chủ chỉnh sửa cài đặt tùy chọn được chuyển đổi cho
thời hạn của lệnh này chỉ.

Current hàng: Đặt đến dòng đầu vào cuối cùng; nếu không có dòng nào được nhập, hãy đặt thành dòng trước đó
dòng được chỉ định hoặc dòng đầu tiên của vùng đệm chỉnh sửa nếu không có dòng nào
trước dòng được chỉ định hoặc bằng XNUMX nếu bộ đệm chỉnh sửa trống.

Current cột: Đặt thành không .

Tham gia
toát yếu:
[2addr] j[oin][!][tính][cờ]

If tính được quy định:

Nếu không có địa chỉ nào được chỉ định, tham gia lệnh sẽ hành xử như thể 2addr
dòng hiện tại và dòng hiện tại cộng tính (.,. + tính).

Nếu một địa chỉ được chỉ định, tham gia lệnh sẽ hành xử như thể 2addr
địa chỉ được chỉ định và địa chỉ được chỉ định cộng tính (địa chỉ,địa chỉ + tính).

Nếu hai địa chỉ được chỉ định, tham gia lệnh sẽ hoạt động như thể một bổ sung
địa chỉ, bằng địa chỉ cuối cùng cộng với tính −1 (địa chỉ 1,địa chỉ 2,địa chỉ 2 + tính −1),
đã được chỉ định.

Nếu điều này dẫn đến địa chỉ thứ hai lớn hơn dòng cuối cùng của bản chỉnh sửa
đệm, nó sẽ được hiệu chỉnh để bằng với dòng cuối cùng của bộ đệm chỉnh sửa.

Nếu không tính được quy định:

Nếu không có địa chỉ nào được chỉ định, tham gia lệnh sẽ hành xử như thể 2addr
dòng hiện tại và dòng tiếp theo (.,. +1).

Nếu một địa chỉ được chỉ định, tham gia lệnh sẽ hành xử như thể 2addr
địa chỉ được chỉ định và dòng tiếp theo (địa chỉ,địa chỉ + 1).

Nối văn bản từ các dòng được chỉ định lại với nhau thành một dòng duy nhất, dòng này sẽ thay thế
các dòng được chỉ định.

Nếu một '!' ký tự được nối vào tên lệnh, tham gia sẽ không có
sửa đổi bất kỳ dòng nào, không phụ thuộc vào ngôn ngữ hiện tại.

Nếu không, trong ngôn ngữ POSIX, hãy đặt dòng hiện tại thành dòng đầu tiên trong số các dòng được chỉ định,
và sau đó, đối với mỗi dòng tiếp theo, hãy tiến hành như sau:

1. Bỏ hàng đầu ký tự từ dòng được nối.

2. Nếu dòng được nối hiện đang trống, hãy xóa dòng đó và bỏ qua các bước từ 3 đến 5.

3. Nếu dòng hiện tại kết thúc bằng một hoặc ký tự đầu tiên của dòng được nối
là một ')' ký tự, nối các dòng mà không cần sửa đổi thêm.

4. Nếu ký tự cuối cùng của dòng hiện tại là '.', nối các dòng với hai
các ký tự giữa chúng.

5. Nếu không, hãy nối các dòng với một giữa họ.

Current hàng: Đặt thành dòng đầu tiên được chỉ định.

Current cột: Đặt thành không .

Danh sách
toát yếu:
[2addr] l[][tính][cờ]

Lệnh này sẽ tương đương với ex chỉ huy:

[2addr] p[rint][tính] l[cờ]

Xem In.

Bản đồ
toát yếu:
bản đồ[!][lh RHS]

If lhRHS không được chỉ định:

1. Nếu '!' được chỉ định, viết danh sách hiện tại của bản đồ chế độ nhập văn bản.

2. Nếu không, hãy viết danh sách bản đồ chế độ lệnh hiện tại.

3. Không làm gì hơn.

Việc triển khai có thể hạn chế tập hợp các ký tự được chấp nhận trong lh or RHS, ngoại trừ việc
các ký tự in được và các ký tự sẽ không bị hạn chế. Thêm vào
các hạn chế sẽ được xác định bởi việc thực hiện. Ở cả hai lhRHS, bất kỳ nhân vật nào cũng có thể là
trốn thoát với một ‐V, trong trường hợp đó ký tự sẽ không được sử dụng để phân tách lh
từ RHS, và trốn thoát ‐V sẽ bị loại bỏ.

Nếu nhân vật '!' được thêm vào bản đồ tên lệnh, ánh xạ sẽ có hiệu lực
trong chế độ nhập văn bản mở hoặc trực quan hơn là mở or trực quan chế độ lệnh. Điều này cho phép
lh có hai khác nhau bản đồ định nghĩa cùng một lúc: một cho chế độ lệnh và một
cho chế độ nhập văn bản.

Đối với ánh xạ chế độ lệnh:

Khi lh được nhập như bất kỳ phần nào của vi lệnh ở chế độ mở hoặc chế độ trực quan (nhưng không
như một phần của các đối số cho lệnh), hành động sẽ như thể
tương ứng RHS đã được nhập.

Nếu bất kỳ ký tự nào trong lệnh, không phải ký tự đầu tiên, được thoát bằng cách sử dụng
Ký tự ‐V, ký tự đó sẽ không phải là một phần của một lh.

Không xác định được liệu việc triển khai có hỗ trợ hay không bản đồ lệnh trong đó lh
có độ dài nhiều hơn một ký tự, trong đó ký tự đầu tiên của lh is
có thể in được.

If lh chứa nhiều hơn một ký tự và ký tự đầu tiên là '#', theo dõi bởi
một chuỗi các chữ số tương ứng với một phím chức năng được đánh số, sau đó khi điều này
phím chức năng được nhập, nó sẽ được ánh xạ tới RHS. Các ký tự không phải là chữ số
sau một '#' ký tự cũng đại diện cho phím chức năng được đặt tên bởi các ký tự
trong lh sau '#' và có thể được ánh xạ tới RHS. Nó không được xác định như thế nào
các phím chức năng được đặt tên hoặc những phím chức năng nào được hỗ trợ.

Đối với ánh xạ chế độ nhập văn bản:

Khi lh được nhập dưới dạng bất kỳ phần nào của văn bản được nhập trong kiểu nhập văn bản mở hoặc trực quan
các chế độ, hành động sẽ như thể tương ứng RHS đã được nhập.

Nếu bất kỳ ký tự nào trong văn bản đầu vào bị thoát bằng cách sử dụng Ký tự ‐V, rằng
nhân vật sẽ không phải là một phần của trận đấu với một lh.

Không xác định được liệu lh văn bản được nhập cho lần sau bản đồ or bỏ bản đồ lệnh
được thay thế bằng RHS văn bản cho các mục đích của màn hình hiển thị; bất chấp
màn hình có hiển thị như thể tương ứng hay không RHS văn bản đã được nhập,
hiệu lực của lệnh sẽ như thể lh văn bản đã được nhập.

Nếu chỉ là một phần của lh được nhập, không xác định được người chỉnh sửa sẽ đợi trong bao lâu
bổ sung, có thể khớp các ký tự trước khi coi các ký tự đã được nhập là
không phù hợp với lh.

Sản phẩm RHS bản thân các ký tự sẽ phải được ánh xạ lại, trừ khi được quy định khác bởi
các remap chỉnh sửa tùy chọn, ngoại trừ điều đó nếu các ký tự trong lh xảy ra dưới dạng các ký tự tiền tố trong
RHS, những ký tự đó sẽ không được ánh xạ lại.

Trên các thiết bị đầu cuối chế độ khối, việc ánh xạ không cần diễn ra ngay lập tức (ví dụ: nó có thể xảy ra
sau khi thiết bị đầu cuối truyền một nhóm ký tự đến hệ thống), nhưng nó sẽ đạt được
kết quả tương tự như thể nó xảy ra ngay lập tức.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Đánh dấu
toát yếu:
[1addr] ma[rk] tính cách
[1addr] k tính cách

Việc triển khai sẽ hỗ trợ tính cách giá trị của một chữ cái thường duy nhất của POSIX
ngôn ngữ và các ký tự trích dẫn ngược và trích dẫn đơn; hỗ trợ của các nhân vật khác là
triển khai xác định.

Nếu thực hiện vi m lệnh, đặt dấu được chỉ định thành dòng hiện tại và dựa trên 1
ký tự được đánh số được tham chiếu bởi cột hiện tại, nếu có; ngược lại, vị trí cột 1.

Nếu không, hãy đặt dấu được chỉ định thành dòng được chỉ định và đánh số dựa trên 1 đầu tiên
không không trong dòng, nếu có; nếu không, cuối cùng không bên trong
dòng, nếu có; ngược lại, vị trí cột 1.

Dấu sẽ vẫn được liên kết với đường cho đến khi dấu được đặt lại hoặc đường
đã xóa. Nếu một dòng đã xóa được khôi phục bởi một dòng tiếp theo lùi lại lệnh, bất kỳ đánh dấu nào trước đây
được liên kết với đường dây, chưa được đặt lại, cũng sẽ được khôi phục. Bất kỳ việc sử dụng
một dấu không liên kết với một dòng hiện tại trong bộ đệm chỉnh sửa sẽ là một lỗi.

Các dấu hiệu `' sẽ được đặt như mô tả trước đây, ngay trước phần sau
các sự kiện xảy ra trong trình chỉnh sửa:

1. Việc sử dụng '$' như một ex địa chỉ

2. Việc sử dụng một số thập phân dương như một ex địa chỉ

3. Việc sử dụng lệnh tìm kiếm như một ex địa chỉ

4. Việc sử dụng một tham chiếu nhãn hiệu như một ex địa chỉ

5. Việc sử dụng các lệnh chế độ mở và chế độ trực quan sau: -], %, (, ), [, ], {,
}

6. Việc sử dụng các lệnh chế độ mở và chế độ trực quan sau: ', G, H, L, M, z nếu
dòng hiện tại sẽ thay đổi do lệnh

7. Việc sử dụng các lệnh chế độ mở và chế độ trực quan: /, ?, N, `, n nếu dòng hiện tại hoặc
cột sẽ thay đổi do lệnh

8. Việc sử dụng ex lệnh chế độ: z, lùi lại, toàn cầu, v

Đối với các quy tắc 1., 2., 3. và 4., `' nhãn hiệu sẽ không được đặt nếu ex lệnh là
được phân tích cú pháp như được chỉ định bởi quy tắc 6.a. trong Lệnh Dòng Phân tích cú pháp in ex.

Đối với các quy tắc 5., 6. và 7., `' dấu sẽ không được đặt nếu các lệnh được sử dụng như
lệnh chuyển động ở chế độ mở và trực quan.

Đối với các quy tắc 1., 2., 3., 4., 5., 6., 7. và 8., `' nhãn hiệu sẽ không được đặt nếu
lệnh không thành công.

Sản phẩm `' nhãn hiệu sẽ được đặt như mô tả trước đây, mỗi khi nội dung của chỉnh sửa
bộ đệm được thay thế (bao gồm cả việc chỉnh sửa bộ đệm ban đầu), nếu ở dạng mở hoặc trực quan
chế độ, hoặc nếu ở ex chế độ và bộ đệm chỉnh sửa không trống, trước bất kỳ lệnh hoặc chuyển động nào
(bao gồm các lệnh hoặc chuyển động được chỉ định bởi −c or −t các tùy chọn hoặc +lệnh
đối số) được thực thi trên bộ đệm chỉnh sửa. Nếu ở chế độ mở hoặc chế độ trực quan, các dấu sẽ
thiết lập như thể thực hiện vi m yêu cầu; nếu không, như thể thực hiện ex dấu chỉ huy.

Khi thay đổi từ ex chế độ mở hoặc chế độ trực quan, nếu `' điểm chưa có
thiết lập, `' nhãn hiệu sẽ được thiết lập như đã mô tả trước đây.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Di chuyển
toát yếu:
[2addr] m[ove] 1addr [cờ]

Di chuyển các dòng được chỉ định sau dòng đích đã chỉ định. Điểm đến của dòng số XNUMX
chỉ định rằng các dòng sẽ được đặt ở đầu bộ đệm chỉnh sửa. Nó sẽ là
lỗi nếu dòng đích nằm trong phạm vi dòng được di chuyển.

Current hàng: Đặt đến dòng cuối cùng của các dòng đã di chuyển.

Current cột: Đặt thành không .

Sau
toát yếu:
n[ext][!][+lệnh][hồ sơ hữu ích. Cảm ơn !]

Nếu không '!' được thêm vào tên lệnh và bộ đệm chỉnh sửa đã được sửa đổi kể từ đó
lần ghi hoàn chỉnh cuối cùng, nó sẽ là một lỗi, trừ khi tệp được ghi thành công như
được chỉ định bởi viết tự động tùy chọn.

Nếu một hoặc nhiều tệp được chỉ định:

1. Đặt danh sách đối số thành các tên tệp được chỉ định.

2. Đặt tham chiếu danh sách đối số hiện tại làm mục nhập đầu tiên trong danh sách đối số.

3. Đặt tên đường dẫn hiện tại thành tên tệp đầu tiên được chỉ định.

Nếu không thì:

1. Sẽ là một lỗi nếu không có thêm tên tệp nào trong danh sách đối số sau
tên tệp hiện được tham chiếu.

2. Đặt tên đường dẫn hiện tại và tham chiếu danh sách đối số hiện tại thành tên tệp sau
tên tệp hiện được tham chiếu trong danh sách đối số.

Thay thế nội dung của bộ đệm chỉnh sửa bằng nội dung của tệp được đặt tên theo hiện tại
tên đường dẫn. Nếu vì bất kỳ lý do gì mà nội dung của tệp không thể được truy cập, bộ đệm chỉnh sửa
sẽ trống.

Lệnh này sẽ bị ảnh hưởng bởi viết tự độngviết bất kỳ chỉnh sửa các tùy chọn.

Sản phẩm +lệnh lựa chọn sẽ là -delimited; các ký tự có thể được thoát bằng
trước chúng bằng một tính cách. Các +lệnh sẽ được hiểu là một ex
lệnh ngay sau khi nội dung của bộ đệm chỉnh sửa đã được thay thế và
dòng và cột hiện tại đã được thiết lập.

Current hàng: Đặt như được mô tả cho chỉnh sửa chỉ huy.

Current cột: Đặt như được mô tả cho chỉnh sửa chỉ huy.

Con số
toát yếu:
[2addr] nu[mber][tính][cờ]
[2addr] #[tính][cờ]

Các lệnh này sẽ tương đương với ex chỉ huy:

[2addr] p[rint][tính] #[cờ]

Xem In.

Mở
toát yếu:
[1addr] o[bút] /Belt Hold/ [cờ]

Lệnh này không cần được hỗ trợ trên thiết bị đầu cuối chế độ khối hoặc thiết bị đầu cuối không đủ
các khả năng. Nếu đầu vào tiêu chuẩn, đầu ra tiêu chuẩn hoặc lỗi tiêu chuẩn không phải là thiết bị đầu cuối
thiết bị, kết quả không xác định.

Vào chế độ mở.

Dấu phân cách cuối có thể được bỏ qua Belt Hold ở cuối dòng lệnh. Nếu như
Belt Hold trống (ví dụ: "//") hoặc không được chỉ định, biểu thức chính quy cuối cùng được sử dụng trong
trình chỉnh sửa sẽ được sử dụng làm mẫu. Mẫu có thể được phân định bằng
các ký tự (được hiển thị trong Tóm tắt nội dung), cũng như bất kỳ ký tự chữ và số hoặc không khác với
, , , hoặc dấu ngoặc kép.

Current hàng: Đặt thành dòng được chỉ định.

Current cột: Đặt thành không .

Bảo quản
toát yếu:
trước [phục vụ]

Lưu bộ đệm chỉnh sửa trong một biểu mẫu mà sau này có thể được khôi phục bằng cách sử dụng −r tùy chọn hoặc bằng
bằng cách sử dụng ex lấy lại yêu cầu. Sau khi tệp đã được bảo toàn, một thông điệp thư sẽ
được gửi cho người dùng. Thông báo này sẽ có thể đọc được bằng cách gọi thư x tính thiết thực. Các
thông báo phải có tên của tệp, thời gian bảo quản và một ex lệnh
có thể được sử dụng để khôi phục tệp. Thông tin bổ sung có thể được bao gồm trong thư
thông điệp.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

In
toát yếu:
[2addr] p[rint][tính][cờ]

Viết các dòng địa chỉ. Hành vi không được xác định nếu số lượng cột trên
hiển thị ít hơn số cột cần thiết để viết bất kỳ ký tự đơn nào trong
dòng đang được viết.

Các ký tự không in được, ngoại trừ ký tự , sẽ được viết là do triển khai xác định
chuỗi nhiều ký tự.

Nếu # cờ được chỉ định hoặc con số tùy chọn chỉnh sửa được thiết lập, mỗi dòng sẽ được đặt trước
bởi số dòng của nó ở định dạng sau:

"% 6ngày ", <hàng con số>

Nếu l cờ được chỉ định hoặc tùy chọn chỉnh sửa được đặt:

1. Các ký tự được liệt kê trong tập Định nghĩa cơ bản của POSIX.1‐2008, Bàn 5-1,
trốn thoát Trình tự Liên kết Hoạt động sẽ được viết là lối thoát tương ứng
sự nối tiếp.

2. Các ký tự không in được không có trong tập Định nghĩa cơ bản của POSIX.1‐2008, Bàn
5-1, trốn thoát Trình tự Liên kết Hoạt động sẽ được viết dưới dạng một bát phân có ba chữ số
số (có trước ) cho mỗi byte trong ký tự (quan trọng nhất
byte đầu tiên).

3. Cuối mỗi dòng phải được đánh dấu '$', và theo nghĩa đen '$' các ký tự trong
dòng sẽ được viết trước .

Các đường dài sẽ được gấp lại; độ dài mà tại đó nếp gấp xảy ra là không xác định, nhưng phải
phù hợp với thiết bị đầu cuối đầu ra, xem xét số lượng cột của thiết bị đầu cuối.

Nếu một đường gấp khúc, và l cờ không được chỉ định và tùy chọn chỉnh sửa chưa được đặt,
không xác định được liệu một ký tự nhiều cột ở vị trí gấp có được tách biệt hay không;
nó sẽ không bị loại bỏ.

Current hàng: Đặt đến dòng được viết cuối cùng.

Current cột: Không thay đổi nếu dòng hiện tại không thay đổi; nếu không, hãy đặt thành không .

Đặt
toát yếu:
[1addr] pu[t][đệm]

Nối văn bản từ bộ đệm được chỉ định (theo mặc định, bộ đệm không tên) vào bộ đệm được chỉ định
hàng; dòng XNUMX chỉ định rằng văn bản sẽ được đặt ở đầu chỉnh sửa
đệm. Mỗi phần của một dòng trong bộ đệm sẽ trở thành một dòng mới trong bộ đệm chỉnh sửa,
không phụ thuộc vào chế độ của bộ đệm.

Current hàng: Đặt thành dòng cuối cùng được nhập vào bộ đệm chỉnh sửa.

Current cột: Đặt thành không .

Thoát
toát yếu:
q[uit][!]

Nếu không '!' được thêm vào tên lệnh:

1. Nếu bộ đệm chỉnh sửa đã được sửa đổi kể từ lần viết hoàn chỉnh cuối cùng, nó sẽ là một
lỗi.

2. Nếu có tên tệp trong danh sách đối số sau tên tệp hiện được tham chiếu,
và lệnh cuối cùng không phải là bỏ thuốc lá, wq, xit, hoặc là ZZ (xem Ra), nó sẽ là một
lỗi.

Nếu không, hãy chấm dứt phiên chỉnh sửa.

Đọc
toát yếu:
[1addr] r[ead][!][hồ sơ]

If '!' không phải là người đầu tiên không để làm theo tên lệnh, một bản sao của
tệp sẽ được thêm vào bộ đệm chỉnh sửa sau dòng được chỉ định; dòng XNUMX chỉ định
rằng bản sao sẽ được đặt ở đầu bộ đệm chỉnh sửa. Số dòng và
byte được đọc sẽ được viết. Nếu không hồ sơ được đặt tên, tên đường dẫn hiện tại sẽ là
vỡ nợ. Nếu không có tên đường dẫn hiện tại, thì hồ sơ sẽ trở thành tên đường dẫn hiện tại. Nếu như
không có tên đường dẫn hiện tại hoặc hồ sơ toán hạng, nó sẽ là một lỗi. Chỉ định một hồ sơ việc này
không thuộc loại thường xuyên sẽ có kết quả không xác định.

Nếu không, nếu hồ sơ đứng trước '!', phần còn lại của dòng sau '!' sẽ có '%',
'#''!' các ký tự được mở rộng như được mô tả trong Lệnh Dòng Phân tích cú pháp in ex.

Sản phẩm ex tiện ích sau đó sẽ chuyển hai đối số cho chương trình được đặt tên bởi shell edit
lựa chọn; người đầu tiên sẽ là −c và thứ hai sẽ là các đối số được mở rộng cho đọc
lệnh như một đối số duy nhất. Đầu vào tiêu chuẩn của chương trình phải được đặt thành
đầu vào tiêu chuẩn của ex chương trình khi nó được gọi. Sai số tiêu chuẩn và tiêu chuẩn
đầu ra của chương trình sẽ được thêm vào bộ đệm chỉnh sửa sau dòng được chỉ định.

Mỗi dòng trong tệp được sao chép hoặc đầu ra của chương trình (được phân tách bằng ký tự hoặc
cuối tệp hoặc đầu ra nếu nó không đứng ngay trước ), sẽ
một dòng riêng biệt trong bộ đệm chỉnh sửa. Bất kỳ sự xuất hiện nào của và
các cặp trong đầu ra sẽ được coi là đơn nhân vật.

Ý nghĩa đặc biệt của '!' sau đọc lệnh có thể được ghi đè bằng cách thoát
nó với một tính cách.

Current hàng: Nếu không có dòng nào được thêm vào vùng đệm chỉnh sửa, không thay đổi. Ngược lại, nếu mở
hoặc chế độ trực quan, đặt thành dòng đầu tiên được nhập vào bộ đệm chỉnh sửa. Nếu không, hãy đặt thành
dòng cuối cùng được nhập vào bộ đệm chỉnh sửa.

Current cột: Đặt thành không .

Phục hồi
toát yếu:
rec [kết thúc][!] hồ sơ

Nếu không '!' được thêm vào tên lệnh và bộ đệm chỉnh sửa đã được sửa đổi kể từ đó
bản viết hoàn chỉnh cuối cùng, nó sẽ là một lỗi.

Nếu không hồ sơ toán hạng được chỉ định, sau đó tên đường dẫn hiện tại sẽ được sử dụng. Nếu không có
tên đường dẫn hiện tại hoặc hồ sơ toán hạng, nó sẽ là một lỗi.

Nếu trước đó không có thông tin khôi phục nào được lưu về hồ sơ, Các lấy lại lệnh sẽ
cư xử giống nhau với chỉnh sửa lệnh, và một thông báo cung cấp thông tin cho hiệu ứng này sẽ
được viết.

Nếu không, hãy đặt tên đường dẫn hiện tại thành hồ sơvà thay thế nội dung hiện tại của bản chỉnh sửa
đệm với các nội dung được phục hồi của hồ sơ. Nếu có nhiều phiên bản của tệp
để được khôi phục, cái được lưu gần đây nhất sẽ được phục hồi, và một thông tin
thông báo rằng có các phiên bản trước của tệp có thể được khôi phục sẽ được
bằng văn bản. Trình chỉnh sửa sẽ hoạt động như thể nội dung của bộ đệm chỉnh sửa đã được
đã sửa đổi.

Current hồ sơ: Đặt như được mô tả cho chỉnh sửa chỉ huy.

Current cột: Đặt như được mô tả cho chỉnh sửa chỉ huy.

Quay lại
toát yếu:
rew [ind][!]

Nếu không '!' được thêm vào tên lệnh và bộ đệm chỉnh sửa đã được sửa đổi kể từ đó
lần ghi hoàn chỉnh cuối cùng, nó sẽ là một lỗi, trừ khi tệp được ghi thành công như
được chỉ định bởi viết tự động tùy chọn.

Nếu danh sách đối số trống, nó sẽ là một lỗi.

Tham chiếu danh sách đối số hiện tại và tên đường dẫn hiện tại sẽ được đặt thành đầu tiên
tên tệp trong danh sách đối số.

Thay thế nội dung của bộ đệm chỉnh sửa bằng nội dung của tệp được đặt tên theo hiện tại
tên đường dẫn. Nếu vì bất kỳ lý do gì mà nội dung của tệp không thể được truy cập, bộ đệm chỉnh sửa
sẽ trống.

Lệnh này sẽ bị ảnh hưởng bởi viết tự độngviết bất kỳ chỉnh sửa các tùy chọn.

Current hàng: Đặt như được mô tả cho chỉnh sửa chỉ huy.

Current cột: Đặt như được mô tả cho chỉnh sửa chỉ huy.

Thiết lập
toát yếu:
se [t][tùy chọn[=[giá trị]] hữu ích. Cảm ơn !][Khôngtùy chọn hữu ích. Cảm ơn !][tùy chọn? ...][tất cả các]

Khi không có đối số nào được chỉ định, hãy ghi giá trị của kỳ hạn chỉnh sửa tùy chọn và những tùy chọn đó
có giá trị đã được thay đổi so với cài đặt mặc định; khi tranh luận tất cả các is
được chỉ định, viết tất cả các giá trị tùy chọn.

Đặt tên tùy chọn theo sau là ký tự '?' sẽ gây ra giá trị hiện tại của
tùy chọn được viết. Các '?' có thể được phân tách khỏi tên tùy chọn bằng XNUMX hoặc nhiều hơn
nhân vật. Các '?' sẽ chỉ cần thiết cho các tùy chọn có giá trị Boolean. Boolean
các tùy chọn có thể được cung cấp các giá trị bằng biểu mẫu định tùy chọn để bật chúng lên hoặc định Khôngtùy chọn biến
họ tắt; các tùy chọn chuỗi và số có thể được chỉ định bởi biểu mẫu định tùy chọn=giá trị. Bất kì
các ký tự trong chuỗi có thể được bao gồm như trước mỗi với một
trốn thoát . Nhiều tùy chọn có thể được đặt hoặc liệt kê bằng một lệnh tập hợp duy nhất
bằng cách chỉ định nhiều đối số, mỗi đối số được phân tách với đối số tiếp theo bằng một hoặc nhiều
ký tự.

Xem Chỉnh sửa Các lựa chọn in ex để biết chi tiết về các tùy chọn cụ thể.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Shell
toát yếu:
NS[đơn vị để đo]

Gọi chương trình có tên trong shell chỉnh sửa tùy chọn với một đối số −i (tương tác
chế độ). Việc chỉnh sửa sẽ được tiếp tục khi chương trình thoát ra.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

nguồn
toát yếu:
vì thế[urcan để] hồ sơ

Đọc và thực thi ex lệnh từ hồ sơ. Các dòng trong tệp là dòng trống sẽ là
mặc kệ.

Current hàng: Như được chỉ định cho cá nhân ex lệnh.

Current cột: Như được chỉ định cho cá nhân ex lệnh.

Thay thế
toát yếu:
[2addr] s[đồ ăn uống][/Belt Hold/thay thế/[lựa chọn][tính][cờ]]
[2addr] &[lựa chọn][tính][cờ]]
[2addr] ~[lựa chọn][tính][cờ]]

Thay thế phiên bản đầu tiên của mẫu Belt Hold bởi chuỗi thay thế trên mỗi chỉ định
hàng. (Nhìn thấy Đều đặn Biểu thức in exThay thế Strings in ex.) Bất kỳ không phải chữ cái nào,
không dấu phân cách khác với , '|', , hoặc có thể sử dụng dấu ngoặc kép
thay vì '/'. các ký tự có thể được sử dụng để thoát khỏi các dấu phân cách,
ký tự và các ký tự đặc biệt khác.

Dấu phân cách cuối có thể được bỏ qua Belt Hold hoặc từ thay thế ở cuối lệnh
hàng. Nếu cả hai Belt Holdthay thế không được chỉ định hoặc trống (ví dụ: "//"),
cuối cùng s lệnh sẽ được lặp lại. giá như Belt Hold không được chỉ định hoặc trống, cuối cùng
biểu thức chính quy được sử dụng trong trình soạn thảo sẽ được sử dụng làm mẫu. giá như thay thế không phải là
được chỉ định hoặc để trống, mẫu sẽ được thay thế bằng không. Nếu toàn bộ
mô hình thay thế là '%', mẫu thay thế cuối cùng cho một s lệnh sẽ được sử dụng.

Nhập một trong thay thế (yêu cầu thoát trong ex chế độ
và một cuộc chạy trốn ‐V đang mở hoặc vi chế độ) sẽ tách dòng tại điểm đó,
tạo một dòng mới trong bộ đệm chỉnh sửa. Các sẽ bị loại bỏ.

If lựa chọn bao gồm các bức thư 'NS' (toàn cầu), tất cả các trường hợp không chồng chéo của mẫu
trong dòng sẽ được thay thế.

If lựa chọn bao gồm các bức thư 'NS' (xác nhận), sau đó trước mỗi lần thay thế, dòng phải
được viết; dòng viết phải phản ánh tất cả các lần thay thế trước đó. Về sau
hàng, các ký tự sẽ được viết bên dưới các ký tự từ dòng
trước Belt Hold được thay thế, và '^' các ký tự được viết bên dưới các ký tự
đã bao gồm Belt Hold để được thay thế. Các ex tiện ích sau đó sẽ đợi phản hồi từ
người dùng. Một câu trả lời khẳng định sẽ khiến việc thay thế được thực hiện, trong khi bất kỳ câu trả lời nào khác
đầu vào sẽ không thay thế. Một câu trả lời khẳng định sẽ bao gồm một dòng
với câu trả lời khẳng định (như được xác định bởi ngôn ngữ hiện tại) ở đầu
hàng. Dòng này sẽ được chỉnh sửa theo cách giống như ex dòng lệnh.

Nếu bị gián đoạn (xem phần SỰ KIỆN BẤT NGỜ), bất kỳ sửa đổi nào được xác nhận bởi
người dùng sẽ được lưu trong bộ đệm chỉnh sửa sau khi ngắt.

Nếu hướng tìm kiếm đã nhớ không được đặt, s lệnh sẽ đặt nó chuyển tiếp.

Trong Tóm tắt nội dung thứ hai, & lệnh sẽ lặp lại sự thay thế trước đó, như thể &
lệnh đã được thay thế bằng:

s/Belt Hold/thay thế/

Ở đâu Belt Holdthay thế như được chỉ định trong phần trước s, &, hoặc là ~ chỉ huy.

Trong phần tóm tắt thứ ba, ~ lệnh sẽ lặp lại sự thay thế trước đó, như thể '~'
đã được thay thế bởi:

s/Belt Hold/thay thế/

Ở đâu Belt Hold sẽ là biểu thức chính quy cuối cùng được chỉ định cho trình soạn thảo, và thay thế phải
từ sự thay thế trước đó (bao gồm &~) chỉ huy.

Các lệnh này sẽ bị ảnh hưởng bởi LC_MESSAGES biến môi trường.

Current hàng: Đặt thành dòng cuối cùng trong đó thay thế xảy ra hoặc không thay đổi nếu không
thay thế xảy ra.

Current cột: Đặt thành không .

Treo
toát yếu:
su [tiêu][!]
st[op][!]

Cho phép điều khiển quay trở lại quá trình gọi; ex sẽ tự đình chỉ như thể nó đã
đã nhận được tín hiệu SIGTSTP. Việc tạm dừng sẽ chỉ xảy ra nếu điều khiển công việc được bật trong
trình bao gọi (xem mô tả của định −m).

Các lệnh này sẽ bị ảnh hưởng bởi viết tự độngviết bất kỳ chỉnh sửa các tùy chọn.

Hiện tại nghi ngờ nhân vật (xem tại biển) sẽ tương đương với Đình chỉ chỉ huy.

Nhãn
toát yếu:
ta [g][!] dây đeo thẻ

Kết quả không xác định nếu định dạng của tệp thẻ không được chỉ định bởi ctag
tiện ích (xem ctag) sự miêu tả.

Sản phẩm tag lệnh sẽ tìm kiếm dây đeo thẻ trong các tệp thẻ được tham chiếu bởi tag chỉnh sửa
tùy chọn, theo thứ tự chúng được chỉ định, cho đến khi tham chiếu đến dây đeo thẻ được tìm thấy. Các tập tin
sẽ được tìm kiếm từ đầu đến cuối. Nếu không tìm thấy tài liệu tham khảo, đó sẽ là một lỗi
và một thông báo lỗi cho hiệu ứng này sẽ được viết. Nếu tham chiếu không được tìm thấy, hoặc nếu
một lỗi xảy ra khi xử lý một tệp được tham chiếu trong tag chỉnh sửa tùy chọn, nó sẽ là một
và một thông báo lỗi sẽ được ghi vào lần đầu tiên xảy ra lỗi như vậy.

Ngược lại, nếu tệp thẻ chứa một mẫu, thì mẫu đó sẽ được coi là một
biểu thức được sử dụng trong trình soạn thảo; ví dụ, cho các mục đích của s chỉ huy.

Nếu dây đeo thẻ nằm trong một tệp có tên khác với tên đường dẫn hiện tại, hãy đặt
tên đường dẫn hiện tại thành tên của tệp đó và thay thế nội dung của bộ đệm chỉnh sửa
với nội dung của tệp đó. Trong trường hợp này, nếu không '!' được thêm vào tên lệnh,
và bộ đệm chỉnh sửa đã được sửa đổi kể từ lần viết hoàn chỉnh cuối cùng, nó sẽ là một lỗi,
trừ khi tệp được ghi thành công như được chỉ định bởi viết tự động tùy chọn.

Lệnh này sẽ bị ảnh hưởng bởi viết tự động, tag, chiều dài thẻviết bất kỳ chỉnh sửa
tùy chọn.

Current hàng: Nếu tệp thẻ chứa số dòng, hãy đặt thành số dòng đó. Nếu
số dòng lớn hơn dòng cuối cùng trong bộ đệm chỉnh sửa, một thông báo lỗi sẽ là
bằng văn bản và dòng hiện tại sẽ được đặt như được chỉ định cho chỉnh sửa chỉ huy.

Nếu tệp thẻ chứa một mẫu, hãy đặt thành lần xuất hiện đầu tiên của mẫu trong
tập tin. Nếu không tìm thấy mẫu phù hợp, một thông báo lỗi sẽ được ghi và dòng điện
dòng sẽ được thiết lập như được chỉ định cho chỉnh sửa chỉ huy.

Current cột: Nếu tệp thẻ chứa tham chiếu số dòng và số dòng đó
không lớn hơn dòng cuối cùng trong vùng đệm chỉnh sửa hoặc nếu tệp thẻ chứa
và mẫu đó đã được tìm thấy, được đặt thành không . Nếu không, hãy đặt như được chỉ định cho
các chỉnh sửa chỉ huy.

Bỏ viết tắt
toát yếu:
una [ngắn gọn] lh

If lh không phải là một mục trong danh sách các từ viết tắt hiện tại (xem Viết tắt), nó sẽ là
một lỗi. Nếu không, hãy xóa lh từ danh sách các chữ viết tắt.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Undo
toát yếu:
u[Hoàn tác]

Đảo ngược các thay đổi được thực hiện bởi lệnh cuối cùng đã sửa đổi nội dung của bản chỉnh sửa
đệm, bao gồm lùi lại. Với mục đích này, toàn cầu, v, mởtrực quan lệnh và
các lệnh kết quả từ việc thực thi bộ đệm và mở rộng ký tự được ánh xạ, được coi là
các lệnh đơn lẻ.

Nếu không có hành động nào có thể được hoàn tác trước lùi lại lệnh, nó sẽ là một lỗi.

Nếu lùi lại lệnh khôi phục các dòng đã được đánh dấu, dấu hiệu cũng sẽ được khôi phục
trừ khi nó được đặt lại sau khi xóa các dòng.

Current hàng:

1. Nếu các dòng được thêm vào hoặc thay đổi trong tệp, hãy đặt thành dòng đầu tiên được thêm vào hoặc thay đổi.

2. Đặt thành dòng trước khi dòng đầu tiên bị xóa, nếu nó tồn tại.

3. Đặt thành 1 nếu bộ đệm chỉnh sửa không trống.

4. Đặt thành không.

Current cột: Đặt thành không .

Bỏ bản đồ
toát yếu:
bỏ qua [ap][!] lh

If '!' được nối vào tên lệnh và nếu lh không phải là một mục trong danh sách văn bản
định nghĩa bản đồ chế độ đầu vào, nó sẽ là một lỗi. Nếu không, hãy xóa lh từ danh sách
định nghĩa bản đồ chế độ nhập văn bản.

Nếu không '!' được nối vào tên lệnh và nếu lh không phải là một mục trong danh sách
định nghĩa bản đồ chế độ lệnh, nó sẽ là một lỗi. Nếu không, hãy xóa lh từ danh sách
định nghĩa bản đồ chế độ lệnh.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

phiên bản
toát yếu:
đã[rsion]

Viết tin nhắn chứa thông tin phiên bản cho trình chỉnh sửa. Định dạng của tin nhắn
là không xác định.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Hình ảnh
toát yếu:
[1addr] vi[ngọt][kiểu][tính][cờ]

If ex hiện đang ở chế độ mở hoặc chế độ trực quan, Tóm tắt nội dung và hành vi của lệnh trực quan
sẽ giống như chỉnh sửa lệnh, như được chỉ định bởi Chỉnh sửa.

Nếu không, lệnh này không cần được hỗ trợ trên thiết bị đầu cuối chế độ khối hoặc thiết bị đầu cuối có
không đủ khả năng. Nếu đầu vào tiêu chuẩn, đầu ra tiêu chuẩn hoặc lỗi tiêu chuẩn không
thiết bị đầu cuối, kết quả không xác định.

If tính được chỉ định, giá trị của cửa sổ tùy chọn chỉnh sửa sẽ được đặt thành tính (như
diễn tả cái cửa sổ). Nếu '^' ký tự loại cũng đã được chỉ định, cửa sổ chỉnh sửa
tùy chọn sẽ được thiết lập trước khi được sử dụng bởi ký tự kiểu.

Vào chế độ trực quan. Nếu như kiểu không được chỉ định, nó sẽ như thể một kiểu of '+'
được chỉ định. Các kiểu sẽ gây ra các hiệu ứng sau:

+ Đặt đầu dòng được chỉ định ở trên cùng của màn hình.

- Đặt cuối dòng được chỉ định ở cuối màn hình.

. Đặt đầu dòng được chỉ định ở giữa màn hình.

^ Nếu dòng được chỉ định nhỏ hơn hoặc bằng giá trị của cửa sổ chỉnh sửa tùy chọn,
đặt dòng thành 1; nếu không, giảm dòng theo giá trị của cửa sổ chỉnh sửa
tùy chọn trừ 1. Đặt đầu dòng này càng gần cuối dòng
hiển thị các dòng càng tốt, trong khi vẫn hiển thị giá trị của cửa sổ chỉnh sửa
số dòng tùy chọn.

Current hàng: Đặt thành dòng được chỉ định.

Current cột: Đặt thành không .

Viết
toát yếu:
[2addr] w[nghi thức][!][>>][hồ sơ]
[2addr] w[nghi thức][!][hồ sơ]
[2addr] wq[!][>>][hồ sơ]

Nếu không có dòng nào được chỉ định, các dòng sẽ được đặt mặc định cho toàn bộ tệp.

Lệnh wq sẽ tương đương với một viết lệnh theo sau bởi một bỏ thuốc lá chỉ huy; ôi!
sẽ tương đương với viết! tiếp theo bỏ thuốc lá. Trong cả hai trường hợp, nếu viết lệnh
thất bại, bỏ thuốc lá sẽ không được cố gắng.

Nếu tên lệnh không được theo sau bởi một hoặc nhiều ký tự, hoặc hồ sơ không phải là
đứng trước một '!' nhân vật, viết sẽ là một tập tin.

1. Nếu các >> đối số được chỉ định và tệp đã tồn tại, các dòng sẽ là
được thêm vào tệp thay vì thay thế nội dung của nó. Nếu >> đối số là
được chỉ định và tệp chưa tồn tại, không xác định được liệu có ghi
sẽ tiến hành như thể >> đối số không được chỉ định hoặc nếu ghi sẽ không thành công.

2. Nếu các chỉ đọc tùy chọn chỉnh sửa được thiết lập (xem chỉ đọc), viết sẽ thất bại.

3. Nếu hồ sơ được chỉ định và không phải là tên đường dẫn hiện tại và tệp tồn tại, viết
sẽ thất bại.

4. Nếu hồ sơ không được chỉ định, tên đường dẫn hiện tại sẽ được sử dụng. Nếu không có hiện tại
tên đường dẫn, viết lệnh sẽ thất bại.

5. Nếu tên đường dẫn hiện tại được sử dụng và tên đường dẫn hiện tại đã được thay đổi bởi hồ sơ
or đọc và tệp tồn tại, viết sẽ thất bại. Nếu viết is
thành công, tiếp theo viếts sẽ không thất bại vì lý do này (trừ khi dòng điện
tên đường dẫn lại được thay đổi).

6. Nếu toàn bộ vùng đệm chỉnh sửa không được ghi và tệp được ghi tồn tại,
viết sẽ thất bại.

Đối với các quy tắc 1., 2., 3. và 5., viết có thể bị ép buộc bằng cách thêm nhân vật vào '!' đến
tên lệnh.

Đối với các quy tắc 2., 3. và 5., viết có thể bị ép buộc bằng cách thiết lập viết bất kỳ chỉnh sửa tùy chọn.

Các thử nghiệm bổ sung, do triển khai xác định có thể gây ra viết thất bại.

Nếu bộ đệm chỉnh sửa trống, một tệp không có bất kỳ nội dung nào sẽ được ghi.

Một thông điệp thông tin sẽ được viết với số lượng dòng và byte được viết.

Ngược lại, nếu lệnh được theo sau bởi một hoặc nhiều ký tự và tệp là
trước bởi '!', phần còn lại của dòng sau '!' sẽ có '%', '#''!'
các ký tự được mở rộng như được mô tả trong Lệnh Dòng Phân tích cú pháp in ex.

Sản phẩm ex sau đó tiện ích sẽ chuyển hai đối số cho chương trình được đặt tên bởi shell chỉnh sửa
lựa chọn; người đầu tiên sẽ là −c và thứ hai sẽ là các đối số được mở rộng cho viết
lệnh như một đối số duy nhất. Các dòng được chỉ định sẽ được ghi vào đầu vào chuẩn
của lệnh. Lỗi tiêu chuẩn và đầu ra tiêu chuẩn của chương trình, nếu có, sẽ là
được viết như được mô tả cho in yêu cầu. Nếu ký tự cuối cùng trong đầu ra đó không phải là
, Một sẽ được viết ở cuối đầu ra.

Ý nghĩa đặc biệt của '!' sau viết lệnh có thể được ghi đè bằng cách thoát
nó với một tính cách.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Viết Ra
toát yếu:
[2addr] x[it][!][hồ sơ]

Nếu bộ đệm chỉnh sửa chưa được sửa đổi kể từ lần hoàn thành cuối cùng viết, xit sẽ
tương đương với bỏ thuốc lá lệnh, hoặc nếu một '!' được nối vào tên lệnh, để từ bỏ!.

Nếu không thì, xit sẽ tương đương với wq lệnh, hoặc nếu một '!' được thêm vào
tên lệnh, để ôi!.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

giựt mạnh
toát yếu:
[2addr] ya[nk][đệm][tính]

Sao chép các dòng được chỉ định vào bộ đệm được chỉ định (theo mặc định, bộ đệm không tên),
sẽ trở thành bộ đệm chế độ dòng.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Điều chỉnh Cửa sổ
toát yếu:
[1addr] z[!][kiểu hữu ích. Cảm ơn !][tính][cờ]

Nếu không có dòng nào được chỉ định, dòng hiện tại sẽ là dòng mặc định; nếu như kiểu được bỏ qua như
tốt, giá trị dòng hiện tại trước tiên sẽ được tăng lên 1. Nếu tăng dòng
dòng sẽ khiến nó lớn hơn dòng cuối cùng trong bộ đệm chỉnh sửa, nó sẽ là một
lỗi.

Nếu có ký tự giữa kiểu đối số và trước đó z tên lệnh
hoặc tùy chọn '!' ký tự, nó sẽ là một lỗi.

If tính được chỉ định, giá trị của cửa sổ tùy chọn chỉnh sửa sẽ được đặt thành tính (như
diễn tả cái cửa sổ). Nếu tính bị bỏ qua, nó sẽ được mặc định là 2 lần giá trị của
di chuyển chỉnh sửa tùy chọn, hoặc nếu ! đã được chỉ định, số dòng trong màn hình trừ đi 1.

If kiểu được bỏ qua, sau đó tính các dòng bắt đầu bằng dòng cụ thể sẽ được viết.
Nếu không thì, tính dòng bắt đầu bằng dòng được chỉ định bởi kiểu đối số sẽ là
bằng văn bản.

Sản phẩm kiểu đối số sẽ thay đổi các dòng được viết. Các giá trị có thể có của kiểu khu vực
sau:

- Dòng được chỉ định sẽ được giảm theo giá trị sau:

(((số of `` - '' nhân vật) x tính) −1)

Nếu phép tính cho kết quả là một số nhỏ hơn 1, thì đó sẽ là một lỗi. Viết
các dòng từ vùng đệm chỉnh sửa, bắt đầu từ giá trị mới của dòng, cho đến khi tính dòng hoặc
dòng cuối cùng trong bộ đệm chỉnh sửa đã được viết.

+ Dòng được chỉ định sẽ được tăng thêm giá trị sau:

(((số of `` + '' nhân vật) −1) x tính) +1

Nếu phép tính sẽ dẫn đến một số lớn hơn dòng cuối cùng trong bản chỉnh sửa
đệm, nó sẽ là một lỗi. Viết các dòng từ bộ đệm chỉnh sửa, bắt đầu từ dòng mới
giá trị của dòng, cho đến khi tính dòng hoặc dòng cuối cùng trong bộ đệm chỉnh sửa đã được
bằng văn bản.

=,. Nếu nhiều hơn một '.' or '=' được chỉ định, nó sẽ là một lỗi. Sau
các bước sẽ được thực hiện:

1. Nếu tính là số không, không có gì sẽ được viết.

2. Viết càng nhiều N dòng trước dòng hiện tại trong vùng đệm chỉnh sửa dưới dạng
hiện hữu. Nếu như tính or '!' đã được chỉ định, N sẽ:

(tính −1) / 2

Nếu không thì, N sẽ:

(tính −3) /2

If N là một số nhỏ hơn 3, không được viết dòng nào.

3. Nếu '=' đã được chỉ định là ký tự kiểu, hãy viết một dòng bao gồm
nhỏ hơn số cột trong màn hình chia cho hai hoặc 40 '-'
ký tự.

4. Viết dòng hiện tại.

5. Lặp lại bước 3.

6. Viết càng nhiều N dòng sau dòng hiện tại trong bộ đệm chỉnh sửa như tồn tại.
N sẽ được định nghĩa như trong bước 2. Nếu N là một số nhỏ hơn 3, không có dòng nào được
bằng văn bản. Nếu như tính nhỏ hơn 3, không được viết dòng nào.

^ Dòng được chỉ định sẽ được giảm theo giá trị sau:

(((số of `` ^ '' nhân vật) + 1) x tính) −1

Nếu phép tính cho kết quả là một số nhỏ hơn 1, thì đó sẽ là một lỗi. Viết
các dòng từ vùng đệm chỉnh sửa, bắt đầu từ giá trị mới của dòng, cho đến khi tính dòng hoặc
dòng cuối cùng trong bộ đệm chỉnh sửa đã được viết.

Current hàng: Đặt thành dòng cuối cùng được viết, trừ khi loại là =, trong trường hợp đó, hãy đặt thành
dòng được chỉ định.

Current cột: Đặt thành không .

trốn thoát
toát yếu:
! lệnh
[địa chỉ]! lệnh

Nội dung của dòng sau '!' sẽ có '%', '#''!' các ký tự được mở rộng
như được mô tả trong Lệnh Dòng Phân tích cú pháp in ex. Nếu việc mở rộng gây ra văn bản của dòng
để thay đổi, nó sẽ được hiển thị lại, đứng trước một '!' nhân vật.

Sản phẩm ex tiện ích sẽ thực hiện chương trình được đặt tên bởi shell chỉnh sửa tùy chọn. Nó sẽ vượt qua hai
các đối số của chương trình; người đầu tiên sẽ là −cvà thứ hai sẽ là phần mở rộng
đối số với ! lệnh như một đối số duy nhất.

Nếu không có dòng nào được chỉ định, đầu vào tiêu chuẩn, đầu ra tiêu chuẩn và lỗi tiêu chuẩn của
chương trình phải được đặt thành đầu vào tiêu chuẩn, đầu ra tiêu chuẩn và lỗi tiêu chuẩn của ex
chương trình khi nó được gọi. Ngoài ra, một thông báo cảnh báo sẽ được viết nếu chỉnh sửa
bộ đệm đã được sửa đổi kể từ lần viết hoàn chỉnh cuối cùng, và cảnh báo tùy chọn chỉnh sửa được thiết lập.

Nếu các dòng được chỉ định, chúng sẽ được chuyển tới chương trình làm đầu vào tiêu chuẩn, và
đầu ra tiêu chuẩn và lỗi tiêu chuẩn của chương trình sẽ thay thế các dòng đó trong bản chỉnh sửa
đệm. Mỗi dòng trong đầu ra chương trình (được phân cách bằng ký tự hoặc phần cuối
của đầu ra nếu nó không đứng ngay trước ), sẽ là một dòng riêng biệt
trong bộ đệm chỉnh sửa. Bất kỳ sự xuất hiện nào của và các cặp trong đầu ra
sẽ được coi là độc thân nhân vật. Các dòng cụ thể sẽ được sao chép vào
bộ đệm không tên trước khi chúng được thay thế, và bộ đệm không tên sẽ trở thành một dòng-
bộ đệm chế độ.

Nếu trong ex chế độ, một '!' ký tự sẽ được viết khi chương trình hoàn thành.

Lệnh này sẽ bị ảnh hưởng bởi shellcảnh báo chỉnh sửa các tùy chọn. Nếu không có dòng nào
được chỉ định, lệnh này sẽ bị ảnh hưởng bởi viết tự độngviết bất kỳ chỉnh sửa các tùy chọn. Nếu như
dòng được chỉ định, lệnh này sẽ bị ảnh hưởng bởi in tự động chỉnh sửa tùy chọn.

Current hàng:

1. Nếu không có dòng nào được chỉ định, không thay đổi.

2. Nếu không, hãy đặt thành dòng cuối cùng được đọc trong, nếu có dòng nào được đọc.

3. Nếu không, hãy đặt thành dòng trước dòng đầu tiên của các dòng được chỉ định, nếu dòng đó
tồn tại.

4. Nếu không, hãy đặt thành dòng đầu tiên của bộ đệm chỉnh sửa nếu bộ đệm chỉnh sửa không trống.

5. Nếu không, hãy đặt thành không.

Current cột: Nếu không có dòng nào được chỉ định, không thay đổi. Nếu không, hãy đặt thành không .

sự thay đổi Còn lại
toát yếu:
[2addr] <[<...][tính][cờ]

Chuyển các dòng được chỉ định về đầu dòng; số lượng vị trí cột được
được dịch chuyển sẽ là số ký tự lệnh nhân với giá trị của dịch chuyển chỉnh sửa
lựa chọn. Chỉ dẫn đầu các ký tự sẽ bị xóa hoặc thay đổi thành khác
ký tự trong chuyển dịch; các ký tự khác sẽ không bị ảnh hưởng.

Các dòng được dịch chuyển sẽ được sao chép vào bộ đệm không tên, bộ đệm này sẽ trở thành một dòng-
bộ đệm chế độ.

Lệnh này sẽ bị ảnh hưởng bởi in tự động chỉnh sửa tùy chọn.

Current hàng: Đặt đến dòng cuối cùng trong các dòng được chỉ định.

Current cột: Đặt thành không .

sự thay đổi Đúng
toát yếu:
[2addr] >[> ...][tính][cờ]

Dịch chuyển các dòng được chỉ định ra khỏi đầu dòng; số lượng vị trí cột
được dịch chuyển sẽ là số ký tự lệnh nhân với giá trị của dịch chuyển
chỉnh sửa tùy chọn. Sự thay đổi sẽ được thực hiện bằng cách thêm ký tự như một tiền tố cho
dòng hoặc thay đổi hàng đầu ký tự thành khác nhân vật. Dòng trống
sẽ không được thay đổi.

Các dòng được dịch chuyển sẽ được sao chép vào bộ đệm không tên, bộ đệm này sẽ trở thành một dòng-
bộ đệm chế độ.

Lệnh này sẽ bị ảnh hưởng bởi in tự động chỉnh sửa tùy chọn.

Current hàng: Đặt đến dòng cuối cùng trong các dòng được chỉ định.

Current cột: Đặt thành không .

‐D
toát yếu:
-NS

Viết tiếp theo n dòng, ở đâu n là giá trị tối thiểu của di chuyển chỉnh sửa tùy chọn và
số dòng sau dòng hiện tại trong bộ đệm chỉnh sửa. Nếu dòng hiện tại là
dòng cuối cùng của bộ đệm chỉnh sửa nó sẽ là một lỗi.

Current hàng: Đặt đến dòng cuối cùng được viết.

Current cột: Đặt thành không .

Viết Dòng Con số
toát yếu:
[1addr] = [cờ]

If hàng không được chỉ định, nó sẽ mặc định là dòng cuối cùng trong bộ đệm chỉnh sửa. Ghi
số dòng của dòng được chỉ định.

Current hàng: Không thay đổi.

Current cột: Không thay đổi.

Thực hiện
toát yếu:
[2addr] @ đệm
[2addr] * đệm

Nếu không có bộ đệm nào được chỉ định hoặc được chỉ định là '@' or '*', bộ đệm cuối cùng được thực thi sẽ là
được sử dụng. Nếu không có bộ đệm nào trước đó được thực thi, đó sẽ là một lỗi.

Đối với mỗi dòng được chỉ định bởi các địa chỉ, hãy đặt dòng hiện tại ('.') đến chỉ định
và thực thi nội dung của đệm (như họ ở thời điểm đó @ lệnh
đã được thực hiện) như ex các lệnh. Đối với mỗi dòng của bộ đệm chế độ dòng và tất cả trừ dòng cuối cùng
dòng của bộ đệm chế độ ký tự, ex trình phân tích cú pháp lệnh sẽ hoạt động như thể dòng
chấm dứt bởi một .

Nếu một lỗi xảy ra trong quá trình này hoặc một dòng được chỉ định bởi các địa chỉ không
tồn tại khi dòng hiện tại sẽ được đặt thành nó hoặc nhiều hơn một dòng được chỉ định
bởi các địa chỉ và nội dung của bộ đệm chỉnh sửa được thay thế (ví dụ: bằng ex
chỉnh sửa: lệnh) một thông báo lỗi sẽ được viết và không có lệnh nào nữa do
thực hiện lệnh này sẽ được xử lý.

Current hàng: Như được chỉ định cho cá nhân ex lệnh.

Current cột: Như được chỉ định cho cá nhân ex lệnh.

Đều đặn Biểu thức in ex
Sản phẩm ex tiện ích sẽ hỗ trợ các biểu thức chính quy là tập hợp con của biểu thức chính quy cơ bản
các biểu thức được mô tả trong tập Định nghĩa cơ sở của POSIX.1‐2008, Phần 9.3, Cơ bản
Đều đặn Biểu thức. Một biểu thức chính quy null ("//") sẽ tương đương với cuối cùng
gặp phải biểu thức chính quy.

Biểu thức chính quy có thể được sử dụng trong địa chỉ để chỉ định các dòng và, trong một số lệnh (đối với
ví dụ Thay thế lệnh), để chỉ định các phần của một dòng được thay thế.

Các cấu trúc sau có thể được sử dụng để nâng cao các biểu thức chính quy cơ bản:

\ <Khớp với phần đầu của một lời. (Xem định nghĩa của lời ở đầu
Lệnh Mô tả in ex.)

\> Khớp với phần cuối của một lời.

~ Khớp phần thay thế của phần cuối cùng Thay thế yêu cầu. Các ('~')
ký tự có thể được thoát trong một biểu thức chính quy để trở thành một ký tự bình thường với
không có ý nghĩa đặc biệt. Các sẽ bị loại bỏ.

Khi tùy chọn trình chỉnh sửa ma thuật không được đặt, các ký tự duy nhất có ý nghĩa đặc biệt sẽ
be '^' ở đầu một mẫu, '$' ở cuối một mẫu, và . Các
nhân vật '.', '*', '[''~' sẽ được coi như các ký tự bình thường trừ khi được đặt trước
bởi một ; khi đứng trước một chúng sẽ lấy lại ý nghĩa đặc biệt của chúng,
hoặc trong trường hợp của , được xử lý như một . nhân vật
được sử dụng để thoát các ký tự khác sẽ bị loại bỏ.

Thay thế Strings in ex
Nhân vật '&' ('\ &' nếu tùy chọn trình chỉnh sửa ma thuật không được đặt) trong chuỗi thay thế
sẽ đại diện cho văn bản phù hợp với mẫu được thay thế. Nhân vật '~' ('\ ~' if
ma thuật không được thiết lập) sẽ được thay thế bằng phần thay thế của phần trước Thay thế
yêu cầu. Trình tự '\n', Nơi n là một số nguyên, sẽ được thay thế bằng văn bản phù hợp
bằng biểu thức tham chiếu ngược tương ứng. Nếu tham chiếu ngược tương ứng
biểu thức không khớp, thì các ký tự '\n' sẽ được thay thế bằng chuỗi trống.

Các dây '\ l', '\ u', '\ L''\ U' có thể được sử dụng để sửa đổi trường hợp của các phần tử trong
chuỗi thay thế (sử dụng '\ &' or "\"ký hiệu chữ số). Chuỗi '\ l' ('\ u') nên
khiến ký tự theo sau được chuyển đổi thành chữ thường (chữ hoa). Chuỗi '\ L'
('\ U') sẽ làm cho tất cả các ký tự bên cạnh nó được chuyển đổi thành chữ thường
(chữ hoa) khi chúng được chèn bởi phép thay thế cho đến khi chuỗi '\ e' or '\ E', Hoặc
cuối của chuỗi thay thế, gặp phải.

Nếu không, bất kỳ ký tự nào theo sau một sẽ được coi như nghĩa đen đó
nhân vật và sự trốn thoát sẽ bị loại bỏ.

Một ví dụ về chuyển đổi trường hợp với s lệnh như sau:

:p
Sản phẩm làm sao Th 7 on các chiếu.
:s / \ <. tại \> / \ u & / gp
Sản phẩm Cát Sat on các Chiếu.
:s / S \ (. * \) M / S \ U \ 1 \ eM / p
Sản phẩm Cát SAT ON CÁC Chiếu.

Chỉnh sửa Các lựa chọn in ex
Sản phẩm ex tiện ích có một số tùy chọn sửa đổi hành vi của nó. Các tùy chọn này có
cài đặt mặc định, có thể được thay đổi bằng cách sử dụng định chỉ huy.

Các tùy chọn là Boolean trừ khi được chỉ định khác.

tự động, ai
[Vỡ nợ không đặt]

If tự chủ được đặt, mỗi dòng trong chế độ đầu vào sẽ được thụt vào (sử dụng đầu tiên càng nhiều
ký tự càng tốt, được xác định bởi tùy chọn trình chỉnh sửa Dừng tab, và sau đó sử dụng
ký tự) để căn chỉnh với một dòng khác, như sau:

1. Nếu ở chế độ mở hoặc chế độ trực quan và đầu vào văn bản là một phần của lệnh hướng dòng (xem
MÔ TẢ MỞ RỘNG trong vi), căn chỉnh với cột đầu tiên.

2. Ngược lại, nếu ở chế độ mở hoặc chế độ trực quan, thụt lề cho mỗi dòng sẽ được đặt là
sau:

Một. Nếu một dòng đã được chèn trước đó như một phần của lệnh này, thì dòng đó sẽ được đặt thành
thụt lề của dòng được chèn cuối cùng theo mặc định, hoặc theo cách khác được chỉ định cho
các Ký tự ‐D trong Đầu vào Chế độ Lệnh in vi.

b. Nếu không, nó sẽ được đặt thành thụt lề của dòng hiện tại trước đó, nếu
bất kì; nếu không, đến cột đầu tiên.

3. Cho ex a, ic lệnh, thụt lề cho mỗi dòng sẽ được thiết lập như sau:

Một. Nếu một dòng đã được chèn trước đó như một phần của lệnh này, thì dòng đó sẽ được đặt thành
thụt lề của dòng được chèn cuối cùng theo mặc định, hoặc theo cách khác được chỉ định cho
các ôi nhân vật trong cuộn giấy.

b. Ngược lại, nếu lệnh là ex a lệnh, nó sẽ được đặt thành dòng
nối sau, nếu có; ngược lại đến cột đầu tiên.

C. Ngược lại, nếu lệnh là ex i lệnh, nó sẽ được đặt thành dòng
đã chèn trước đây, nếu có; ngược lại đến cột đầu tiên.

d. Ngược lại, nếu lệnh là ex c lệnh, nó sẽ được đặt thành thụt lề
của dòng được thay thế.

in tự động, ap
[Vỡ nợ định]

If in tự động được thiết lập, dòng hiện tại sẽ được viết sau mỗi ex lệnh sửa đổi
nội dung của bộ đệm chỉnh sửa hiện tại và sau mỗi tag lệnh cho thẻ
mẫu tìm kiếm được tìm thấy hoặc số dòng thẻ hợp lệ, trừ khi:

1. Lệnh được thực hiện khi ở chế độ mở hoặc chế độ trực quan.

2. Lệnh được thực hiện như một phần của toàn cầu or v lệnh hoặc @ thực thi bộ đệm.

3. Lệnh là dạng của đọc lệnh đọc tệp vào bộ đệm chỉnh sửa.

4. Lệnh là thêm, thay đổi, hoặc là chèn chỉ huy.

5. Lệnh không được kết thúc bởi một .

6. Dòng hiện tại sẽ được viết bởi một cờ chỉ định cho lệnh; Ví dụ,
xóa # phải viết dòng hiện tại như được chỉ định cho công cụ sửa đổi cờ cho xóa
và không được chỉ định bởi in tự động chỉnh sửa tùy chọn.

viết tự động, aw
[Vỡ nợ không đặt]

If viết tự động được đặt và bộ đệm chỉnh sửa đã được sửa đổi kể từ lần cuối cùng hoàn toàn
được ghi vào bất kỳ tệp nào, nội dung của bộ đệm chỉnh sửa sẽ được ghi như thể ex viết
lệnh đã được chỉ định mà không có đối số, trước mỗi lệnh bị ảnh hưởng bởi
viết tự động tùy chọn chỉnh sửa được thực thi. Thêm nhân vật '!' đến tên lệnh của bất kỳ
của ex lệnh ngoại trừ '!' sẽ ngăn chặn việc viết. Nếu ghi không thành công, nó sẽ là một
lỗi và lệnh sẽ không được thực hiện.

làm đẹp, bf
[Vỡ nợ không đặt]

If làm đẹp được đặt, tất cả các ký tự không in được, ngoại trừ , , và
các ký tự nguồn cấp dữ liệu>, sẽ bị loại bỏ khỏi văn bản được đọc từ tệp.

danh mục, dir
[Vỡ nợ triển khai xác định]

Giá trị của tùy chọn này chỉ định thư mục chứa bộ đệm trình soạn thảo
đã đặt. Nếu người dùng không thể ghi thư mục này, trình soạn thảo sẽ thoát ra.

tương thích, ed
[Vỡ nợ không đặt]

Gây ra sự hiện diện của gc các hậu tố trên các lệnh thay thế được ghi nhớ, và
chuyển đổi bằng cách lặp lại các hậu tố.

chuông báo lỗi, eb
[Vỡ nợ không đặt]

Nếu người biên tập ở ex và thiết bị đầu cuối không hỗ trợ chế độ nổi bật (chẳng hạn như
video nghịch đảo), và chuông báo lỗi được thiết lập, thông báo lỗi sẽ được đặt trước bằng cách cảnh báo
thiết bị đầu cuối.

exrc
[Vỡ nợ không đặt]

If exrc được thiết lập, ex sẽ truy cập bất kỳ .exrc tệp trong thư mục hiện tại, như được mô tả trong
Khởi tạo in ex vi. Nếu exrc không được thiết lập, ex sẽ bỏ qua bất kỳ .exrc tập tin trong
thư mục hiện tại trong quá trình khởi tạo, trừ khi thư mục hiện tại được đặt tên bởi
TRANG CHỦ biến môi trường.

bỏ qua trường hợp, ic
[Vỡ nợ không đặt]

If bỏ qua trường hợp được đặt, các ký tự có biểu diễn chữ hoa và chữ thường sẽ
những biểu diễn đó có được coi là tương đương cho các mục đích của biểu thức chính quy không
so sánh.

Sản phẩm bỏ qua trường hợp tùy chọn chỉnh sửa sẽ ảnh hưởng đến tất cả các biểu thức chính quy được nhớ; Ví dụ,
gỡ rối bỏ qua trường hợp tùy chọn chỉnh sửa sẽ gây ra một vi n lệnh tìm kiếm
biểu thức chính quy cơ bản cuối cùng phân biệt chữ hoa chữ thường.


[Vỡ nợ không đặt]

If được thiết lập, chỉnh sửa các dòng đệm được viết khi ở trong ex chế độ lệnh sẽ được viết là
được chỉ định cho in lệnh với l cờ được chỉ định. Ở chế độ mở hoặc chế độ trực quan, mỗi
chỉnh sửa dòng đệm sẽ được hiển thị như được chỉ định cho ex in lệnh với l cờ
được chỉ định. Trong chế độ nhập văn bản mở hoặc trực quan, khi con trỏ không dừng lại trên bất kỳ
ký tự trong dòng, nó sẽ nằm trên '$' đánh dấu cuối dòng.

ma thuật
[Vỡ nợ định]

If ma thuật được đặt, sửa đổi cách diễn giải các ký tự trong biểu thức chính quy và
chuỗi thay thế thay thế (xem Đều đặn Biểu thức in exThay thế Strings in
ex).

thông điệp
[Vỡ nợ định]

If thông điệp được thiết lập, cho phép người khác sử dụng viết or nói chuyện lệnh để viết cho
đầu nối phải được bật khi ở chế độ mở hoặc chế độ hiển thị. Lệnh cấp shell thông điệp
n sẽ được ưu tiên hơn bất kỳ cài đặt nào của ex thông điệp lựa chọn; đó là, nếu thông điệp y
được phát hành trước khi trình chỉnh sửa bắt đầu (hoặc trong một lần thoát trình bao), chẳng hạn như:

:! mesg y

các thông điệp tùy chọn trong ex sẽ ngăn chặn các tin nhắn đến, nhưng thông điệp tùy chọn sẽ không
bật tin nhắn đến nếu thông điệp n đã được ban hành.

con số, nu
[Vỡ nợ không đặt]

If con số được thiết lập, chỉnh sửa các dòng đệm được viết khi ở trong ex chế độ lệnh sẽ được viết bằng
số dòng, ở định dạng được chỉ định bởi in lệnh với # cờ được chỉ định. Trong
ex chế độ nhập văn bản, mỗi dòng phải được đặt trước số dòng mà nó sẽ có trong
tập tin.

Ở chế độ mở hoặc chế độ trực quan, mỗi dòng đệm chỉnh sửa sẽ được hiển thị với một dòng trước
số, ở định dạng được chỉ định bởi ex in lệnh với # cờ được chỉ định. Điều này
số dòng sẽ không được coi là một phần của dòng nhằm mục đích đánh giá
cột hiện tại; nghĩa là, vị trí cột 1 sẽ là vị trí cột đầu tiên sau
định dạng được chỉ định bởi in chỉ huy.

đoạn văn, para
[Mặc định trong ngôn ngữ POSIX IPLPPPQPP LIpplpipbp]

Sản phẩm đoạn văn tùy chọn chỉnh sửa sẽ xác định ranh giới đoạn bổ sung cho phần mở và
lệnh chế độ trực quan. Các đoạn văn tùy chọn chỉnh sửa có thể được đặt thành một chuỗi ký tự
bao gồm không hoặc nhiều cặp ký tự. Sẽ là một lỗi nếu đặt nó thành số lẻ
số lượng ký tự.

nhanh chóng
[Vỡ nợ định]

If nhanh chóng được thiết lập, ex đầu vào chế độ lệnh sẽ được nhắc với (':'); khi nào
không được đặt, không có lời nhắc nào sẽ được viết.

chỉ đọc
[Vỡ nợ xem văn bản]

Nếu chỉ đọc tùy chọn chỉnh sửa được thiết lập, chế độ chỉ đọc sẽ được bật (xem Viết). Các
chỉ đọc tùy chọn chỉnh sửa sẽ được khởi tạo để thiết lập nếu một trong các điều kiện sau
thật:

* Tùy chọn dòng lệnh −R đã được chỉ định.

* Thực hiện các hành động tương đương với truy cập() hàm được gọi như sau
đối số chỉ ra rằng tệp thiếu quyền ghi:

1. Tên đường dẫn hiện tại được sử dụng làm con đường tranh luận.

2. Hằng số CHẢO được sử dụng như Một chế độ tranh luận.

Sản phẩm chỉ đọc tùy chọn chỉnh sửa có thể được khởi tạo để đặt cho tùy chọn khác, do triển khai xác định
lý do. Các chỉ đọc tùy chọn chỉnh sửa sẽ không được khởi tạo để không được đặt dựa trên bất kỳ
đặc quyền của người dùng hoặc quy trình. Các chỉ đọc tùy chọn chỉnh sửa sẽ được khởi động lại từng
thời gian mà nội dung của bộ đệm chỉnh sửa được thay thế (ví dụ: bởi một chỉnh sửa or tiếp theo
lệnh) trừ khi người dùng đã đặt nó một cách rõ ràng, trong trường hợp đó nó sẽ vẫn được đặt cho đến khi
người dùng đã hủy đặt nó một cách rõ ràng. Sau khi không được đặt, nó sẽ lại được khởi động lại mỗi lần
nội dung của bộ đệm chỉnh sửa được thay thế.

vẽ lại
[Vỡ nợ không đặt]

Trình chỉnh sửa mô phỏng một thiết bị đầu cuối thông minh trên một thiết bị đầu cuối câm. (Vì điều này có khả năng
yêu cầu một lượng lớn đầu ra cho thiết bị đầu cuối, nó chỉ hữu ích khi truyền tải cao
tốc độ.)

remap
[Vỡ nợ định]

If remap được thiết lập, dịch bản đồ sẽ cho phép các bản đồ được xác định theo các bản đồ khác;
quá trình dịch sẽ tiếp tục cho đến khi thu được sản phẩm cuối cùng. Nếu không được đặt, chỉ một bước
bản dịch sẽ được thực hiện.

báo cáo
[Mặc định 5]

Giá trị của cái này báo cáo tùy chọn chỉnh sửa chỉ định số dòng được thêm vào, sao chép,
bị xóa hoặc sửa đổi trong bộ đệm chỉnh sửa sẽ làm cho một thông báo thông tin được viết
cho người dùng. Các điều kiện sau đây sẽ tạo ra một thông báo thông tin. Thông điệp
sẽ chứa số dòng được thêm, sao chép, xóa hoặc sửa đổi, nhưng ngược lại
không xác định.

* Một ex or vi lệnh soạn thảo, khác với mở, lùi lại, hoặc là trực quan, điều đó sửa đổi ít nhất
giá trị của báo cáo chỉnh sửa số dòng tùy chọn và không phải là một phần của ex
toàn cầu or v lệnh, hoặc ex or vi thực thi bộ đệm, sẽ gây ra một
tin nhắn sẽ được viết.

* Một ex yank or vi y or Y lệnh sao chép ít nhất giá trị của báo cáo chỉnh sửa
tùy chọn cộng với 1 số dòng và không phải là một phần của ex toàn cầu or v lệnh, hoặc
ex or vi thực thi bộ đệm, sẽ tạo ra một thông báo thông tin được viết.

* Một ex toàn cầu, v, mở, lùi lại, hoặc là trực quan lệnh hoặc ex or vi thực thi bộ đệm, điều đó bổ sung
hoặc xóa tổng số ít nhất là giá trị của báo cáo chỉnh sửa số dòng tùy chọn,
và không phải là một phần của ex toàn cầu or v lệnh, hoặc ex or vi thực thi bộ đệm,
sẽ tạo ra một thông điệp thông tin được viết ra. (Ví dụ: nếu 3 dòng
đã thêm và 8 dòng bị xóa trong một ex trực quan lệnh, 5 sẽ là số được so sánh
chống lại báo cáo chỉnh sửa tùy chọn sau khi lệnh hoàn thành.)

cuộn, scr
[Mặc định (số dòng trong màn hình −1) / 2]

Giá trị của di chuyển tùy chọn chỉnh sửa sẽ xác định số dòng được cuộn bởi ex
‐D và z các lệnh. Cho vi ‐D và ‐U lệnh, nó sẽ là
số dòng ban đầu để cuộn khi không có dòng trước đó ‐D hoặc Lệnh ‐U
đã được thực hiện.

phần
[Mặc định trong ngôn ngữ POSIX NHSHH HUnhsh]

Sản phẩm phần tùy chọn chỉnh sửa sẽ xác định ranh giới phần bổ sung cho phần mở và
lệnh chế độ trực quan. Các phần tùy chọn chỉnh sửa có thể được đặt thành một chuỗi ký tự bao gồm
không hoặc nhiều cặp ký tự; Sẽ là một lỗi nếu đặt nó thành một số lẻ
ký tự.

vỏ, sh
[Mặc định từ biến môi trường SHELL]

Giá trị của tùy chọn này sẽ là một chuỗi. Giá trị mặc định sẽ được lấy từ SHELL
biến môi trường. Nếu SHELL biến môi trường là null hoặc rỗng, sh (xem sh)
tiện ích sẽ là mặc định.

dịch chuyển, sw
[Mặc định 8]

Giá trị của tùy chọn này sẽ cung cấp chiều rộng trong các cột của mức thụt lề được sử dụng
trong quá trình tự động nhập và bằng các lệnh shift (<>).

chương trình trận đấu, sm
[Vỡ nợ không đặt]

Chức năng được mô tả cho chương trình trận đấu tùy chọn chỉnh sửa không cần được hỗ trợ trên khối-
thiết bị đầu cuối chế độ hoặc thiết bị đầu cuối không đủ khả năng.

If chương trình trận đấu được đặt, ở chế độ mở hoặc chế độ trực quan, khi ')' or '}' được nhập, nếu khớp
'(' or '{' hiện đang hiển thị trên màn hình, '(' or '{' sẽ được gắn cờ
di chuyển con trỏ đến vị trí của nó trong một khoảng thời gian không xác định.

chế độ hiển thị
[Vỡ nợ không đặt]

If chế độ hiển thị được đặt, ở chế độ mở hoặc chế độ trực quan, chế độ hiện tại mà trình chỉnh sửa đang ở
được hiển thị trên dòng cuối cùng của màn hình. Chế độ lệnh và chế độ nhập văn bản sẽ là
phân biệt; các chế độ không xác định khác và thông tin do triển khai xác định có thể là
hiển thị.

làm chậm lại
[Vỡ nợ không đặt]

If làm chậm lại được đặt trong chế độ nhập văn bản mở và trực quan, trình chỉnh sửa sẽ không cập nhật
các phần của màn hình ngoài các cột dòng hiển thị hiển thị các ký tự
do người dùng nhập (xem Đầu vào Chế độ Lệnh in vi).

Dừng tab, ts
[Mặc định 8]

Giá trị của tùy chọn chỉnh sửa này sẽ chỉ định ranh giới cột được sử dụng bởi bên trong
hiển thị (xem in tự động, apĐầu vào Chế độ Lệnh in vi).

chiều dài thẻ, tl
[Số XNUMX mặc định]

Giá trị của tùy chọn chỉnh sửa này sẽ chỉ định số ký tự tối đa là
được coi là quan trọng trong tên thẻ do người dùng chỉ định và trong tên thẻ từ các thẻ
tập tin. Nếu giá trị bằng XNUMX, tất cả các ký tự trong cả hai tên thẻ phải có giá trị quan trọng.

thẻ
[Vỡ nợ xem văn bản]

Giá trị của tùy chọn chỉnh sửa này sẽ là một chuỗi -tên đường dẫn giới hạn của tệp
được sử dụng bởi tag yêu cầu. Giá trị mặc định là không xác định.

kỳ hạn
[Mặc định từ biến môi trường HẠN]

Giá trị của tùy chọn chỉnh sửa này sẽ là một chuỗi. Giá trị mặc định sẽ được lấy từ HẠN
biến trong môi trường. Nếu HẠN biến môi trường trống hoặc rỗng,
mặc định là không xác định. Người chỉnh sửa sẽ sử dụng giá trị của tùy chọn chỉnh sửa này để xác định
loại thiết bị hiển thị.

Kết quả không xác định nếu người dùng thay đổi giá trị của tùy chọn chỉnh sửa cụm từ sau
khởi tạo trình soạn thảo.

ngắn gọn
[Vỡ nợ không đặt]

If ngắn gọn được thiết lập, thông báo lỗi có thể ít dài dòng hơn. Tuy nhiên, ngoại trừ cảnh báo này,
thông báo lỗi không xác định. Hơn nữa, không phải tất cả các thông báo lỗi đều cần thay đổi đối với
các cài đặt khác nhau của tùy chọn này.

cảnh báo
[Vỡ nợ định]

If cảnh báo được đặt và nội dung của bộ đệm chỉnh sửa đã được sửa đổi kể từ khi chúng
lần cuối được viết hoàn chỉnh, người chỉnh sửa sẽ viết một thông báo cảnh báo trước khi nhất định !
lệnh (xem trốn thoát).

cửa sổ
[Vỡ nợ xem văn bản]

Một giá trị được sử dụng trong chế độ mở và chế độ trực quan, bởi -Ban nhạc Các lệnh ‐F và, trong
chế độ trực quan, để chỉ định số dòng được hiển thị khi màn hình được sơn lại.

Nếu −w tùy chọn dòng lệnh không được chỉ định, giá trị mặc định sẽ được đặt thành
giá trị của NGÀNH NGHỀ biến môi trường. Nếu NGÀNH NGHỀ biến môi trường trống hoặc
null, mặc định sẽ là số dòng trong màn hình trừ đi 1.

Đặt cửa sổ chỉnh sửa tùy chọn thành XNUMX hoặc thành một giá trị lớn hơn số dòng trong
màn hình trừ đi 1 (rõ ràng hoặc dựa trên −w tùy chọn hoặc NGÀNH NGHỀ môi trường
biến) sẽ gây ra cửa sổ chỉnh sửa tùy chọn được đặt thành số dòng trong
hiển thị trừ 1.

Tốc độ truyền của dòng đầu cuối có thể thay đổi giá trị mặc định trong một triển khai xác định
cách thức.

ký quỹ, wm
[Mặc định 0]

Nếu giá trị của tùy chọn chỉnh sửa này bằng XNUMX, nó sẽ không có hiệu lực.

Nếu không có trong ngôn ngữ POSIX, tác dụng của tùy chọn chỉnh sửa này được xác định bởi việc triển khai.

Nếu không, nó sẽ chỉ định một số cột từ lề cuối của thiết bị đầu cuối.

Trong các chế độ nhập văn bản mở và trực quan, đối với mỗi ký tự mà bất kỳ phần nào của
ký tự được hiển thị trong một cột nhỏ hơn ký quỹ cột từ phần cuối
lề của dòng hiển thị, trình chỉnh sửa sẽ hoạt động như sau:

1. Nếu nhân vật kích hoạt sự kiện này là một , nó và tất cả ngay trước đó
các ký tự trên dòng hiện tại được nhập trong quá trình thực thi dòng hiện tại
lệnh nhập văn bản, sẽ bị loại bỏ và trình soạn thảo sẽ hoạt động như thể người dùng có
đã nhập một đĩa đơn thay thế. Ngoài ra, nếu ký tự do người dùng nhập tiếp theo là
Một , nó cũng sẽ bị loại bỏ.

2. Ngược lại, nếu có một hoặc nhiều các ký tự trên dòng hiện tại ngay lập tức
trước nhóm cuối cùng của các ký tự đã được nhập trong
việc thực hiện lệnh nhập văn bản hiện tại, ký tự sẽ là
được thay thế như thể người dùng đã nhập một thay thế.

Nếu tự chủ tùy chọn chỉnh sửa được đặt và các sự kiện được mô tả trong 1. hoặc 2. được thực hiện,
bất kì các ký tự tại hoặc sau con trỏ trong dòng hiện tại sẽ bị loại bỏ.

Lợi nhuận cuối kỳ sẽ được xác định bởi hệ thống hoặc được ghi đè bởi người dùng, như
được mô tả cho CỘT trong phần BIẾN SỐ MÔI TRƯỜNG và tập Định nghĩa cơ sở
của POSIX.1‐2008, Chương 8, Môi trường Biến.

quét kết thúc, ws
[Vỡ nợ định]

If kết thúc quét được thiết lập, tìm kiếm ( ex / or ? địa chỉ hoặc chế độ mở và trực quan /, ?, N,
n lệnh) sẽ quấn quanh phần đầu hoặc phần cuối của bộ đệm chỉnh sửa; khi chưa được đặt,
các tìm kiếm sẽ dừng lại ở phần đầu hoặc phần cuối của vùng đệm chỉnh sửa.

viết bất kỳ, wa
[Vỡ nợ không đặt]

If viết bất kỳ được đặt, một số kiểm tra được thực hiện khi thực hiện ex viết lệnh
sẽ bị hạn chế, như được mô tả trong tùy chọn trình soạn thảo viết tự động.

EXIT TÌNH TRẠNG


Các giá trị thoát sau sẽ được trả về:

0 Hoàn thành thành công.

> 0 Đã xảy ra lỗi.

HẬU QUẢ OF LRI


Khi gặp bất kỳ lỗi nào và đầu vào chuẩn không phải là tệp thiết bị đầu cuối, ex
sẽ không ghi tệp hoặc quay lại chế độ nhập lệnh hoặc văn bản, và sẽ kết thúc bằng
trạng thái thoát khác XNUMX.

Nếu không, khi gặp lỗi không thể khôi phục, nó sẽ tương đương với một SIGHUP
sự kiện không đồng bộ.

Nếu không, khi gặp lỗi, trình chỉnh sửa sẽ hoạt động như được chỉ định trong Lệnh
Dòng Phân tích cú pháp in ex.

Sản phẩm tiếp theo phần đang nhiều thông tin.

ỨNG DỤNG SỬ DỤNG


Nếu tín hiệu SIGSEGV được nhận trong khi ex đang lưu một tệp, tệp có thể không
lưu thành công.

Sản phẩm tiếp theo lệnh có thể chấp nhận nhiều hơn một tệp, vì vậy cách sử dụng như:

tiếp theo `l [abc] * `

là hợp lệ; nó sẽ không hợp lệ cho chỉnh sửa or đọc ví dụ: vì chúng
chỉ mong đợi một tệp và kết quả không xác định xảy ra.

VÍ DỤ


Không có.

CƠ SỞ LÝ LUẬN


Sản phẩm ex/vi đặc điểm kỹ thuật dựa trên thực tiễn lịch sử được tìm thấy trong 4 BSD và Hệ thống
V triển khai của exvi.

A hạn chế biên tập viên (cả lịch sử đỏ tiện ích và sửa đổi đối với ex) là
đã xem xét và từ chối để đưa vào. Cả hai tùy chọn đều không cung cấp mức độ bảo mật
người dùng có thể mong đợi.

Người ta công nhận rằng ex chế độ hình ảnh và các tính năng liên quan sẽ khó khăn, nếu không
không thể, để thực hiện một cách thỏa đáng trên một thiết bị đầu cuối chế độ khối hoặc một thiết bị đầu cuối không có
bất kỳ hình thức địa chỉ con trỏ nào; do đó, nó không phải là một yêu cầu bắt buộc mà các tính năng đó
sẽ hoạt động trên tất cả các thiết bị đầu cuối. Tuy nhiên, nó có ý định là một ex thực hiện
nên cung cấp tập hợp đầy đủ các khả năng trên tất cả các thiết bị đầu cuối có khả năng hỗ trợ chúng.

Các lựa chọn
Sản phẩm −c thay thế cho +lệnh được lấy cảm hứng từ −e tùy chọn khát. Trong lịch sử, tất cả
các lệnh như vậy (xem chỉnh sửatiếp theo cũng như vậy) đã được thực thi từ dòng cuối cùng của bản chỉnh sửa
đệm. Ví dụ, điều này có nghĩa là "+ / mẫu" sẽ thất bại trừ khi kết thúc quét tùy chọn
đã được thiết lập. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử. Các +lệnh Tùy chọn là
không còn được chỉ định bởi POSIX.1‐2008 nhưng có thể có trong một số triển khai.
Trước đây, một số triển khai đã hạn chế ex các lệnh có thể được liệt kê như một phần
của các đối số dòng lệnh. Để nhất quán, POSIX.1‐2008 không cho phép những
hạn chế.

Trong quá trình triển khai lịch sử của trình chỉnh sửa, −R tùy chọn (và chỉ đọc chỉnh sửa tùy chọn)
chỉ ngăn chặn việc ghi đè lên các tệp; nối vào các tệp vẫn được cho phép, ánh xạ
lỏng lẻo vào csh người ăn bám Biến đổi. Tuy nhiên, một số triển khai đã không tuân theo
ngữ nghĩa này, và chỉ đọc cũng không cho phép bổ sung. POSIX.1‐2008 theo sau
thực hành sau này, tin rằng đó là một ý nghĩa rõ ràng và trực quan hơn của chỉ đọc.

Sản phẩm −s tùy chọn ngăn chặn tất cả phản hồi tương tác của người dùng và hữu ích cho việc chỉnh sửa tập lệnh
trong các công việc hàng loạt. Danh sách các tác động cụ thể là thực tiễn lịch sử. Loại thiết bị đầu cuối
`` không có khả năng hỗ trợ các chế độ mở và hình ảnh '' đã được đặt tên là `` câm '' trong lịch sử.

Sản phẩm −t tùy chọn được yêu cầu bởi vì ctag tiện ích xuất hiện trong POSIX.1‐2008 và
tùy chọn có sẵn trong tất cả các triển khai lịch sử của ex.

Trong lịch sử, exvi các tiện ích đã chấp nhận một −x tùy chọn, đã mã hóa dựa trên
thuật toán được tìm thấy trong lịch sử crypt tính thiết thực. Các −x tùy chọn mã hóa và
liên kết crypt tiện ích, đã bị bỏ qua vì thuật toán được sử dụng không thể xác định được và
luật kiểm soát xuất khẩu của một số quốc gia gây khó khăn cho việc xuất khẩu tiền điện tử
Công nghệ. Ngoài ra, trước đây nó không cung cấp mức độ bảo mật mà người dùng
có thể mong đợi.

Tiêu chuẩn Đầu vào
Điều kiện cuối tệp không tương đương với một ký tự cuối tệp. Một kết thúc chung của-
ký tự tệp, ‐D, trong lịch sử là một ex chỉ huy.

Không có độ dài dòng tối đa trong các lần triển khai trước đây của ex. Cụ thể, vì nó
đã được phân tích cú pháp, địa chỉ có độ dài tối đa khác với tên tệp.
Hơn nữa, kích thước bộ đệm dòng tối đa được khai báo là BUFSIZ, có độ dài khác nhau
trên các hệ thống khác nhau. Phiên bản này đã chọn giá trị của {LINE_MAX} để áp đặt
hạn chế sử dụng di động của ex và để hỗ trợ người viết bộ thử nghiệm trong việc phát triển
kiểm tra thực tế thực hiện giới hạn này.

Đầu vào Các tập tin
Đó là một quyết định rõ ràng của các nhà phát triển tiêu chuẩn rằng được thêm vào bất kỳ
thiếu một tập tin. Người ta tin rằng tính năng này của exvi được người dùng tin tưởng vào
để làm cho các tệp văn bản thiếu dấu di động hơn. Người ta công nhận rằng
điều này sẽ yêu cầu một tùy chọn hoặc tiện ích mở rộng do người dùng chỉ định để triển khai cho phép ex
vi để chỉnh sửa các tệp thuộc loại không phải là văn bản nếu các tệp đó không được xác định bởi
hệ thống. Người ta đồng ý rằng khả năng chỉnh sửa các loại tệp tùy ý có thể hữu ích,
nhưng nó không được coi là cần thiết để bắt buộc rằng một ex or vi thực hiện được yêu cầu
để xử lý các tệp khác ngoài tệp văn bản.

Đoạn văn trong phần INPUT FILES, `` Theo mặc định, ... '', nhằm đóng một
vấn đề bảo mật lâu đời ở exvi; của `` modeline '' hoặc `` modelines ''
chỉnh sửa tùy chọn. Tính năng này cho phép bất kỳ dòng nào trong năm dòng đầu tiên hoặc cuối cùng của tệp
chứa các chuỗi "Ví dụ:" or "vi:" (và, dường như, "ei:" or "vx:") thành một dòng
chứa các lệnh của trình soạn thảo và ex giải thích tất cả văn bản cho đến phần tiếp theo ':' hoặc là
như một lệnh. Ví dụ: hãy xem xét hậu quả của việc một người dùng không nghi ngờ sử dụng ex or
vi với tư cách là người chỉnh sửa khi trả lời một thư trong đó một dòng chẳng hạn như:

Ví dụ:! rm −rf :

xuất hiện trong các dòng chữ ký. Các nhà phát triển tiêu chuẩn tin tưởng mạnh mẽ rằng một biên tập viên
theo mặc định không nên diễn giải bất kỳ dòng nào của tệp. Các nhà cung cấp được khuyến khích mạnh mẽ để xóa
tính năng này từ việc triển khai exvi.

không đồng bộ Sự Kiện
Mục đích của cụm từ `` viết hoàn chỉnh '' là toàn bộ bộ đệm chỉnh sửa được ghi
để lưu trữ ổn định. Lưu ý về các tệp tạm thời nhằm mục đích triển khai
sử dụng các tệp tạm thời để sao lưu chỉnh sửa bộ đệm do người dùng không đặt tên.

Trong lịch sử, SIGQUIT đã bị bỏ qua bởi ex, nhưng tương đương với Q lệnh bằng hình ảnh
chế độ; nghĩa là, nó đã thoát khỏi chế độ trực quan và đi vào ex chế độ. POSIX.1‐2008 cho phép, nhưng không
không yêu cầu, hành vi này. Trong lịch sử, SIGINT thường được sử dụng bởi vi người dùng chấm dứt
chế độ nhập văn bản ( ‐C thường dễ nhập hơn ). Một số triển khai
of vi đã cảnh báo thiết bị đầu cuối về sự kiện này, và một số thì không. POSIX.1‐2008 yêu cầu điều đó
SIGINT hoạt động giống hệt với và rằng thiết bị đầu cuối không được cảnh báo.

Trong lịch sử, việc đình chỉ ex trình soạn thảo trong chế độ nhập văn bản tương tự như SIGINT, như
các dòng đã hoàn thành được giữ lại, nhưng mọi dòng một phần bị loại bỏ và trình chỉnh sửa quay trở lại
chế độ lệnh. POSIX.1‐2008 im lặng về vấn đề này; việc triển khai được khuyến khích
theo thực tiễn lịch sử, nếu có thể.

Trong lịch sử, vi trình soạn thảo đã không coi SIGTSTP là một sự kiện không đồng bộ và nó là
do đó không thể tạm dừng trình soạn thảo ở chế độ nhập văn bản trực quan. Có hai chính
lý do cho điều này. Đầu tiên là SIGTSTP là một tín hiệu quảng bá trên hệ thống UNIX và
chuỗi sự kiện mà vỏ giám đốc điều hànhlà một ứng dụng sau đó giám đốc điều hànhs vi thường gây ra
nhầm lẫn cho trạng thái đầu cuối nếu SIGTSTP được phân phối đến nhóm quy trình trong
cách mặc định. Điều thứ hai là hầu hết các triển khai của UNIX nguyền rủa gói đã làm
không xử lý SIGTSTP một cách an toàn và việc nhận SIGTSTP không đúng thời điểm sẽ khiến chúng
sụp đổ. POSIX.1‐2008 im lặng về vấn đề này; triển khai được khuyến khích để điều trị
tạm ngừng như một sự kiện không đồng bộ nếu có thể.

Về mặt lịch sử, các sửa đổi đối với bộ đệm chỉnh sửa được thực hiện trước khi SIGINT làm gián đoạn hoạt động
đã được giữ lại; nghĩa là, bất kỳ nơi nào từ XNUMX đến tất cả các dòng được sửa đổi có thể có
đã được sửa đổi vào thời điểm SIGINT đến. Những thay đổi này không bị loại bỏ bởi
sự xuất hiện của SIGINT. POSIX.1‐2008 cho phép hành vi này, lưu ý rằng lùi lại lệnh là
cần thiết để có thể hoàn tác các lệnh đã hoàn thành một phần này.

Hành động được thực hiện đối với các tín hiệu không phải là SIGINT, SIGCONT, SIGHUP và SIGTERM là
không xác định vì một số triển khai cố gắng lưu bộ đệm chỉnh sửa ở trạng thái hữu ích
khi các tín hiệu khác được nhận.

Tiêu chuẩn lỗi
Trong ex/vi, thông báo chẩn đoán là những thông báo được báo cáo do không thành công
kêu gọi ex or vi, chẳng hạn như các tùy chọn không hợp lệ hoặc không đủ tài nguyên hoặc bất thường
điều kiện chấm dứt. Thông báo chẩn đoán không được nhầm lẫn với thông báo lỗi
được tạo ra bởi các lệnh của người dùng không phù hợp hoặc bất hợp pháp.

Khởi tạo in ex vi
Nếu một ex lệnh (khác với cd, chdir, hoặc là nguồn) có đối số tên tệp, một hoặc cả hai
tên đường dẫn hiện tại và thay thế sẽ được đặt. Về mặt chính thức, chúng được thiết lập như sau:

1. Nếu các ex là lệnh thay thế nội dung của bộ đệm chỉnh sửa và nó
thành công, tên đường dẫn hiện tại sẽ được đặt thành đối số tên tệp (đối số đầu tiên
đối số tên tệp trong trường hợp của tiếp theo lệnh) và tên đường dẫn thay thế sẽ là
đặt thành tên đường dẫn hiện tại trước đó, nếu có.

2. Trong trường hợp các biểu mẫu đọc / ghi tệp của đọcviết lệnh, nếu có
không có tên đường dẫn hiện tại, tên đường dẫn hiện tại sẽ được đặt thành đối số tên tệp.

3. Nếu không, tên đường dẫn thay thế sẽ được đặt thành đối số tên tệp.

Ví dụ, chỉnh sửa: foo:hồi phục foo, khi thành công, hãy đặt tên đường dẫn hiện tại và
nếu có tên đường dẫn hiện tại trước đó, tên đường dẫn thay thế. Các lệnh :viết,
!chỉ huychỉnh sửa: không đặt tên đường dẫn hiện tại hoặc thay thế. Nếu chỉnh sửa: foo
lệnh không thành công vì một số lý do, tên đường dẫn thay thế sẽ được đặt. Các đọc
viết các lệnh đặt tên đường dẫn thay thế thành hồ sơ đối số, trừ khi hiện tại
tên đường dẫn không được đặt, trong trường hợp đó, họ đặt tên đường dẫn hiện tại thành hồ sơ lập luận.
Tên đường dẫn thay thế trước đây không được đặt bởi :nguồn yêu cầu. POSIX.1‐2008
yêu cầu phù hợp với thực tiễn lịch sử. Triển khai thêm các lệnh cần
tên tệp làm đối số được khuyến khích đặt tên đường dẫn thay thế như được mô tả ở đây.

Trong lịch sử, exvi đọc .exrc tập tin trong $ HOME thư mục hai lần, nếu người biên tập
đã được thực hiện trong $ HOME danh mục. POSIX.1‐2008 nghiêm cấm hành vi này.

Trong lịch sử, 4 BSD exvi đọc $ HOME và địa phương .exrc các tệp nếu chúng được sở hữu
bằng ID thực của người dùng hoặc nguồn tùy chọn đã được đặt, bất kể khác
những cân nhắc. Đây là một vấn đề bảo mật vì có thể đặt UNIX bình thường
lệnh hệ thống bên trong một .exrc tập tin. POSIX.1‐2008 không chỉ định nguồn Tùy chọn,
và các triển khai lịch sử được khuyến khích xóa nó.

Sản phẩm .exrc tệp phải được sở hữu bởi ID thực của người dùng và không thể ghi bởi bất kỳ ai khác
hơn chủ sở hữu. Ngoại lệ đặc quyền thích hợp nhằm cho phép người dùng
có được các đặc quyền đặc biệt, nhưng vẫn tiếp tục sử dụng .exrc các tệp trong thư mục chính của họ.

System V Release 3.2 trở lên vi triển khai đã thêm tùy chọn [không] exrc. Hành vi
đó là địa phương .exrc các tệp ở chế độ chỉ đọc nếu exrc tùy chọn được thiết lập. Mặc định cho
exrc tùy chọn đã bị tắt, vì vậy theo mặc định, cục bộ .exrc các tập tin đã không được đọc. Vấn đề này là
nhằm giải quyết là Hệ thống V cho phép người dùng cho đi các tệp, vì vậy không có
quyền sở hữu có thể có hoặc kiểm tra khả năng ghi để đảm bảo rằng tệp được an toàn. Đây vẫn là một
vấn đề bảo mật trên các hệ thống mà người dùng có thể cho đi các tệp, nhưng không có gì
bổ sung mà POSIX.1‐2008 có thể làm. Ngoại lệ do triển khai xác định nhằm mục đích
cho phép các nhóm có địa phương .exrc tệp được người dùng chia sẻ bằng cách tạo người dùng giả
để sở hữu các tệp được chia sẻ.

POSIX.1‐2008 không đề cập đến toàn hệ thống exvi các tập tin khởi động. Trong khi chúng tồn tại ở
một số triển khai của exvi, chúng không có trong bất kỳ triển khai nào
được coi là thực tiễn lịch sử bởi POSIX.1‐2008. Triển khai có các tệp như vậy
chỉ nên sử dụng chúng nếu chúng được sở hữu bởi ID người dùng thực hoặc một người dùng thích hợp (đối với
ví dụ, root trên hệ thống UNIX) và nếu chúng không thể được ghi bởi bất kỳ người dùng nào khác ngoài
chủ nhân. Các tệp khởi động trên toàn hệ thống phải được đọc trước khi XUẤT CẢNH biến, $ HOME / .exrc,
hoặc địa phương .exrc các tệp được đánh giá.

Trong lịch sử, bất kỳ ex lệnh có thể được nhập vào XUẤT CẢNH biến hoặc .exrc tập tin,
mặc dù những cái yêu cầu rằng bộ đệm chỉnh sửa đã chứa các dòng văn bản nói chung
khiến việc triển khai lịch sử của trình chỉnh sửa giảm xuống cốt lõi. POSIX.1‐2008 yêu cầu điều đó
bất kì ex lệnh được phép trong XUẤT CẢNH biến và .exrc để đơn giản hóa
đặc điểm kỹ thuật và tính nhất quán, mặc dù nhiều người trong số họ rõ ràng sẽ thất bại dưới nhiều
hoàn cảnh.

Việc khởi tạo nội dung của bộ đệm chỉnh sửa sử dụng cụm từ `` hiệu ứng sẽ
được '' liên quan đến ex các lệnh. Mục đích của cụm từ này là chỉnh sửa bộ đệm
nội dung được tải trong giai đoạn khởi tạo không bị mất; đó là, tải bản chỉnh sửa
bộ đệm sẽ không thành công nếu .exrc tệp được đọc trong nội dung của tệp và không
sau đó ghi bộ đệm chỉnh sửa. Một mục đích bổ sung của cụm từ này là để xác định rằng
dòng và cột hiện tại ban đầu được đặt như được chỉ định cho từng cá nhân ex lệnh.

Trong lịch sử, −t tùy chọn hoạt động như thể tìm kiếm thẻ là một +lệnh; đó là, nó đã được
được thực thi từ dòng cuối cùng của tệp được thẻ chỉ định. Điều này dẫn đến việc tìm kiếm
không thành công nếu mô hình là một mô hình tìm kiếm chuyển tiếp và kết thúc quét chỉnh sửa tùy chọn không phải là
bộ. POSIX.1‐2008 không cho phép hành vi này, yêu cầu tìm kiếm thẻ
mẫu được thực hiện trên toàn bộ tệp và nếu không tìm thấy, hãy đặt dòng hiện tại
đến một vị trí hợp lý hơn trong tệp.

Trước đây, bộ đệm chỉnh sửa trống được trình bày để chỉnh sửa khi tệp không được chỉ định bởi
người dùng không được đặt tên. Điều này được POSIX.1‐2008 cho phép; tuy nhiên, triển khai là
khuyến khích cung cấp cho người dùng một tên tệp tạm thời cho vùng đệm này vì nó cho phép họ
việc sử dụng ex các lệnh sử dụng tên đường dẫn hiện tại trong các phiên chỉnh sửa tạm thời.

Trước đây, tệp được chỉ định bằng cách sử dụng −t tùy chọn không phải là một phần của đối số hiện tại
danh sách. Thực hành này được POSIX.1‐2008 cho phép; tuy nhiên, việc triển khai được khuyến khích
để đưa tên của nó vào danh sách đối số hiện tại cho nhất quán.

Trong lịch sử, −c lệnh thường không được thực thi cho đến khi một tệp đã tồn tại
đã được chỉnh sửa. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử này. Lệnh đó
có thể gây ra −c lệnh được thực hiện bao gồm ex lệnh chỉnh sửa, tiếp theo, lấy lại,
tua lạitag, và vi lệnh - ^ và -]. Trong lịch sử, đọc một
tệp vào bộ đệm chỉnh sửa không gây ra −c lệnh được thực thi (mặc dù nó có thể
đặt tên đường dẫn hiện tại) với ngoại lệ mà nó đã gây ra −c lệnh trở thành
được thực thi nếu: trình soạn thảo đã ở trong ex chế độ, bộ đệm chỉnh sửa không có tên đường dẫn hiện tại, chỉnh sửa
bộ đệm trống và không có lệnh đọc nào được thực hiện. Để có tính nhất quán và
tính đơn giản của đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép hành vi này.

Trong lịch sử, −r tùy chọn giống như một phiên chỉnh sửa thông thường nếu không có khôi phục
thông tin có sẵn cho tệp. Điều này cho phép người dùng nhập:

vi −r *.NS

và khôi phục bất kỳ tệp nào có thể khôi phục được. Trong một số triển khai, khôi phục là
chỉ thử trên tệp đầu tiên được đặt tên và tệp không được nhập vào đối số
danh sách; ở những người khác, đã cố gắng khôi phục cho từng tệp được đặt tên. Ngoài ra, một số lịch sử
triển khai bị bỏ qua −r if −t đã được chỉ định hoặc không hỗ trợ dòng lệnh hồ sơ
đối số với −t lựa chọn. Để có tính nhất quán và đơn giản về đặc điểm kỹ thuật,
POSIX.1‐2008 không cho phép các trường hợp đặc biệt này và yêu cầu cố gắng khôi phục
lần đầu tiên mỗi tệp được chỉnh sửa.

Trong lịch sử, vi khởi tạo `' điểm, nhưng ex đã không. Điều này có nghĩa là nếu
lệnh đầu tiên trong ex chế độ đã trực quan hoặc nếu một ex lệnh được thực hiện đầu tiên (ví dụ:
vi +10 hồ sơ), vi đã được nhập mà không có dấu được khởi tạo. Vì tiêu chuẩn
các nhà phát triển tin rằng các nhãn hiệu này nói chung là hữu ích và cho tính nhất quán và đơn giản
đặc điểm kỹ thuật, POSIX.1‐2008 yêu cầu chúng luôn được khởi tạo nếu đang mở hoặc
chế độ trực quan hoặc nếu ở trong ex và bộ đệm chỉnh sửa không trống. Không khởi tạo nó trong ex
chế độ nếu bộ đệm chỉnh sửa trống là thông lệ lịch sử; tuy nhiên, nó đã luôn luôn
có thể đặt (và sử dụng) các dấu trong bộ đệm chỉnh sửa trống ở chế độ mở và chế độ trực quan
phiên họp.

Giải quyết
Trong lịch sử, exvi đã chấp nhận các hình thức giải quyết bổ sung '\ /''\?'. Họ đã
tương đương với "//""??", tương ứng. Chúng không được yêu cầu bởi POSIX.1‐2008, hầu hết là
bởi vì không ai có thể nhớ liệu họ đã từng làm bất cứ điều gì khác biệt trong lịch sử hay không.

Trong lịch sử, exvi cho phép một địa chỉ bằng XNUMX cho một số lệnh và được phép
các % địa chỉ trong các tệp trống cho người khác. Để có tính nhất quán, POSIX.1‐2008 yêu cầu hỗ trợ
cho trước đây trong một số lệnh mà nó có ý nghĩa và không cho phép nó theo cách khác. Trong
ngoài ra, vì POSIX.1‐2008 yêu cầu điều đó % về mặt logic tương đương với "1, $", nó là
cũng được hỗ trợ nếu nó có ý nghĩa và không được phép nếu không.

Trong lịch sử, % địa chỉ không thể được theo sau bởi các địa chỉ khác. Cho thống nhất
và tính đơn giản của đặc điểm kỹ thuật, POSIX.1‐2008 yêu cầu các địa chỉ bổ sung phải
được hỗ trợ.

Tất cả những điều sau đây đều hợp lệ địa chỉ:

+++ Ba dòng sau dòng hiện tại.

/re/ - Một dòng trước lần xuất hiện tiếp theo của re.

−2 Hai dòng trước dòng hiện tại.

3 −−−− 2 Dòng một (lưu ý địa chỉ âm trung gian).

1 2 3 Dòng sáu.

Bất kỳ số lượng địa chỉ nào cũng có thể được cung cấp cho các lệnh lấy địa chỉ; Ví dụ,
"1,2,3,4,5p" in dòng 4 và 5, vì hai là số lượng địa chỉ hợp lệ lớn nhất
được chấp nhận bởi in yêu cầu. Điều này, kết hợp với dấu phân cách,
cho phép người dùng tạo các lệnh dựa trên các mẫu có thứ tự trong tệp. Ví dụ,
lệnh 3; / foo /; + 2print sẽ hiển thị dòng đầu tiên sau dòng 3 chứa mẫu
foo, cộng với hai dòng tiếp theo. Lưu ý rằng địa chỉ 3; phải được đánh giá trước khi được
bị loại bỏ vì nguồn gốc tìm kiếm cho / foo / lệnh phụ thuộc vào điều này.

Trước đây, các giá trị có thể được thêm vào các địa chỉ bằng cách thêm chúng vào sau một hoặc nhiều
nhân vật; Ví dụ, 3 - 5p đã viết dòng thứ bảy của tệp, và / foo / 5
giống như / foo / + 5. Tuy nhiên, chỉ các giá trị tuyệt đối mới có thể được thêm vào; Ví dụ,
5 / foo / là một lỗi. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử. Địa chỉ nhà
sự bù đắp được chỉ định riêng biệt với các địa chỉ vì chúng có thể là
được cung cấp cho các lệnh tìm kiếm ở chế độ trực quan.

Trước đây, bất kỳ địa chỉ bị thiếu nào được mặc định là dòng hiện tại. Điều này đúng với
dẫn đầu và theo sau -địa chỉ giới hạn và để theo dõi -delimited
các địa chỉ. Để có tính nhất quán, POSIX.1‐2008 yêu cầu nó dẫn đầu địa chỉ như
tốt.

Trong lịch sử, exvi chấp nhận '^' ký tự vừa là địa chỉ vừa là dấu hiệu của cờ
cho các lệnh. Trong cả hai trường hợp, nó giống hệt với '-' tính cách. POSIX.1‐2008 không
yêu cầu hoặc cấm hành vi này.

Về mặt lịch sử, các cải tiến đối với các cụm từ thông dụng cơ bản có thể được sử dụng để xử lý;
ví dụ, '~', '\ <''\>'. POSIX.1‐2008 yêu cầu tuân theo lịch sử
thực hành; nghĩa là, việc sử dụng biểu thức chính quy phải nhất quán và
cải tiến biểu thức được hỗ trợ ở bất cứ nơi nào sử dụng biểu thức chính quy.

Lệnh Dòng Phân tích cú pháp in ex
Lịch sử ex phân tích cú pháp lệnh thậm chí còn phức tạp hơn những gì được mô tả ở đây. POSIX.1‐2008
yêu cầu tập hợp con của lệnh phân tích cú pháp mà các nhà phát triển tiêu chuẩn tin rằng
được ghi lại và rằng người dùng có thể được mong đợi một cách hợp lý để sử dụng theo kiểu di động, và
về mặt lịch sử nhất quán giữa các lần triển khai. (Chức năng bị loại bỏ là
tốt nhất là tối nghĩa.) Việc triển khai lịch sử sẽ yêu cầu thay đổi để tuân thủ
với POSIX.1‐2008; tuy nhiên, người dùng sẽ không nhận thấy bất kỳ thay đổi nào trong số này. Phần lớn
về sự phức tạp trong ex phân tích cú pháp là để xử lý ba trường hợp chấm dứt đặc biệt:

1. Các !, toàn cầu, vvà các phiên bản bộ lọc của đọcviết các lệnh được phân cách
qua ký tự (chúng có thể chứa ký tự thường là
ống vỏ).

2. Các ex, chỉnh sửa, tiếp theotrực quan trong các lệnh chế độ mở và chế độ trực quan, tất cả đều thực hiện ex lệnh,
tùy chọn chứa ký tự, như là đối số đầu tiên của họ.

3. Các s lệnh nhận một biểu thức chính quy làm đối số đầu tiên của nó và sử dụng
phân cách các ký tự để phân cách lệnh.

Trong lịch sử, nhân vật trong +lệnh đối số của ex, chỉnh sửa, tiếp theo,
vitrực quan các lệnh và trong Belt Holdthay thế các bộ phận của s lệnh, đã làm
không phân tách lệnh và trong các trường hợp bộ lọc cho đọcviết, và !, toàn cầu,
v lệnh, chúng không hề phân tách lệnh. Ví dụ, sau đây
tất cả các lệnh đều hợp lệ:

:chỉnh sửa +25 | s / abc / ABC / file.c
:s / | /ĐƯỜNG ỐNG/
:đọc! chính tả% | cột
:toàn cầu / mẫu / p | l
:s / a / b / | s / c / d | bộ

Trước đây, trống hoặc điền dòng vào .exrc tập tin và nguồnd tệp (cũng như
XUẤT CẢNH biến và ex tập lệnh lệnh) được coi là lệnh mặc định; đó là, in
các lệnh. POSIX.1‐2008 đặc biệt yêu cầu bỏ qua chúng khi gặp trong
.exrcnguồnd tệp để loại bỏ một nguồn phổ biến của lỗi người dùng mới.

Trong lịch sử, ex các lệnh với nhiều liền kề (hoặc -cách biệt) các đường thẳng đứng
được xử lý kỳ lạ khi thực hiện từ ex chế độ. Ví dụ, lệnh | | <carriage-
return>, khi con trỏ ở trên dòng 1, hiển thị các dòng 2, 3 và 5 của tệp. Trong
ngoài ra, lệnh | sẽ chỉ hiển thị dòng sau dòng tiếp theo, thay vì
hai dòng tiếp theo. Trước đây hoạt động hợp lý hơn khi được thực thi từ vi chế độ và hiển thị
dòng 2, 3 và 4. POSIX.1‐2008 yêu cầu vi hành vi; nghĩa là, một mặc định duy nhất
lệnh và số dòng tăng dần cho mỗi dấu phân cách lệnh và dấu
ký tự sau dải phân cách bị loại bỏ.

Trong lịch sử, ex cho phép thêm một như một ký tự lệnh hàng đầu; vì
thí dụ, : g / pattern /: p là một lệnh hợp lệ. POSIX.1‐2008 khái quát điều này để yêu cầu
bất kỳ số lượng hàng đầu các ký tự bị tước bỏ.

Về mặt lịch sử, bất kỳ tiền tố nào của xóa lệnh có thể được tuân theo mà không cần can thiệp
ký tự bởi một ký tự cờ vì trong lệnh d p, p được hiểu là
đệm p. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trong lịch sử, k lệnh có thể được theo sau bởi tên nhãn hiệu mà không cần can thiệp
nhân vật. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trong lịch sử, s lệnh có thể được theo sau ngay lập tức bởi các ký tự cờ và tùy chọn;
ví dụ, s / e / E / | s | sgc3p là một lệnh hợp lệ. Tuy nhiên, các ký tự cờ không thể đứng
một mình; ví dụ, các lệnh sps l sẽ thất bại, trong khi lệnh sgps gl
sẽ thành công. (Rõ ràng, '#' ký tự cờ đã được sử dụng làm ký tự phân tách nếu nó
đã làm theo lệnh.) Một vấn đề khác là các ký tự tùy chọn phải đứng trước cờ
các ký tự ngay cả khi lệnh đã được chỉ định đầy đủ; ví dụ, lệnh s / e / E / pg
sẽ thất bại, trong khi lệnh s / e / E / gp sẽ thành công. POSIX.1‐2008 yêu cầu tuân thủ
thực tiễn lịch sử.

Trước đây, tên lệnh đầu tiên có tiền tố khớp với đầu vào từ người dùng
là lệnh được thực thi; Ví dụ, ve, verđến tất cả đều thực hiện phiên bản chỉ huy.
Tuy nhiên, các lệnh theo một thứ tự cụ thể, do đó a phù hợp thêm, Chứ không phải viết tắt.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử. Hạn chế về lệnh
thứ tự tìm kiếm cho các triển khai có phần mở rộng là để tránh việc bổ sung các lệnh như
rằng các tiền tố lịch sử sẽ không hoạt động được.

Triển khai lịch sử của exvi không xử lý chính xác nhiều ex lệnh,
ngăn cách bởi các ký tự đã vào hoặc thoát khỏi chế độ trực quan hoặc trình chỉnh sửa.
Bởi vì triển khai của vi tồn tại không có chế độ lỗi này, POSIX.1‐2008
không cho phép nó.

Yêu cầu tên lệnh theo bảng chữ cái bao gồm tất cả các bảng chữ cái sau
các ký tự cho đến ký tự không phải bảng chữ cái tiếp theo có nghĩa là tên lệnh theo bảng chữ cái
phải được phân tách khỏi các đối số của chúng bằng một hoặc nhiều ký tự không phải chữ cái, thông thường
Một hoặc là '!' ký tự, ngoại trừ như được chỉ định cho các ngoại lệ, xóa, ks
lệnh.

Trong lịch sử, việc thực hiện lặp đi lặp lại ex mặc định in lệnh ( ‐D, ôi,
, ) đã xóa mọi ký tự nhắc nhở và hiển thị các dòng tiếp theo
mà không cần cuộn thiết bị đầu cuối; nghĩa là, ngay bên dưới bất kỳ dòng nào được hiển thị trước đó.
Điều này cung cấp một bản trình bày rõ ràng hơn về các dòng trong tệp cho người dùng. POSIX.1‐2008
không yêu cầu hành vi này vì nó có thể là không thể trong một số tình huống; Tuy nhiên,
việc triển khai được khuyến khích mạnh mẽ để cung cấp ngữ nghĩa này nếu có thể.

Trước đây, có thể thay đổi tệp ở giữa một lệnh và có
phần còn lại của lệnh được thực thi trong tệp mới; Ví dụ:

chỉnh sửa: +25 tập tin.c | s / abc / ABC / | 1

là một lệnh hợp lệ và việc thay thế đã được thực hiện trong tệp mới được chỉnh sửa.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử. Các lệnh sau là
các ví dụ thực hiện ex phân tích cú pháp:

bỏ lỡ 'foo | quán ba' > tập 1; bỏ lỡ 'foo / bar' > tập 2;
vi
chỉnh sửa: +1 | s / | / PIPE / | w tệp1 | e tệp2 | 1 | s / \ // SLASH / | wq

Trước đây, không có biện pháp bảo vệ nào trong việc triển khai trình chỉnh sửa để tránh ex toàn cầu, v, @,
or * các lệnh thay đổi bộ đệm chỉnh sửa trong quá trình thực hiện các lệnh liên quan của chúng. Bởi vì
điều này hầu như luôn luôn dẫn đến sự thất bại thảm hại của trình chỉnh sửa, và
các triển khai tồn tại thể hiện những vấn đề này, POSIX.1‐2008 yêu cầu thay đổi
bộ đệm chỉnh sửa trong một toàn cầu or v lệnh, hoặc trong một @ or * lệnh mà ở đó
sẽ không chỉ là một lần thực thi đơn lẻ, là một lỗi. Triển khai hỗ trợ nhiều
chỉnh sửa bộ đệm đồng thời được khuyến khích mạnh mẽ để áp dụng cùng một ngữ nghĩa cho
chuyển đổi giữa các bộ đệm.

Sản phẩm ex trích dẫn lệnh được yêu cầu bởi POSIX.1‐2008 là một tập hợp cao hơn của trích dẫn trong lịch sử
triển khai của trình soạn thảo. Ví dụ, trong lịch sử không thể thoát khỏi một
trong một tên tệp; Ví dụ, chỉnh sửa: foo \\\ thanh sẽ báo cáo rằng quá nhiều tên tệp
đã được nhập cho lệnh chỉnh sửa và không có phương pháp nào để thoát khỏi trong
đối số đầu tiên của một chỉnh sửa, ex, tiếp theo, hoặc là trực quan lệnh nào cả. POSIX.1‐2008 mở rộng
thực tiễn lịch sử, yêu cầu rằng hành vi trích dẫn phải được thực hiện nhất quán trên tất cả ex
các lệnh, ngoại trừ bản đồ, bỏ bản đồ, viết tắtkhông viết tắt lệnh nào
được sử dụng trong lịch sử ‐V thay vì ký tự để trích dẫn. Cho những người
bốn lệnh, POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trích dẫn gạch chéo ngược trong ex là không trực quan. -escapes bị bỏ qua trừ khi chúng
thoát khỏi một ký tự đặc biệt; ví dụ, khi biểu diễn hồ sơ mở rộng đối số,
chuỗi "\\%" tương đương với '\%', không phải "\hiện hành tên đường dẫn> ". Điều này có thể gây nhầm lẫn cho
người dùng bởi vì thường là một trong những ký tự gây ra việc mở rộng trình bao
được thực hiện, và do đó các quy tắc trích dẫn shell phải được xem xét.
Nói chung, các ký tự trích dẫn chỉ được xem xét nếu chúng thoát khỏi một ký tự đặc biệt, và
một ký tự trích dẫn phải được cung cấp cho mỗi lớp phân tích cú pháp mà ký tự đó là
đặc biệt. Như một ví dụ khác, chỉ một là cần thiết cho '\ l' trình tự
trong các mẫu thay thế thay thế, vì ký tự 'l' không đặc biệt đối với bất kỳ
phân tích cú pháp lớp bên trên nó.

‐V trích dẫn trong ex hơi khác với trích dẫn dấu gạch chéo ngược. Trong bốn
lệnh ở đâu Áp dụng báo giá ‐V (viết tắt, không viết tắt, bản đồbỏ bản đồ), không tí nào
ký tự có thể được thoát bởi một ‐V liệu nó có mang một ý nghĩa đặc biệt hay không.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Các triển khai lịch sử của trình chỉnh sửa không yêu cầu dấu phân cách trong ký tự
các lớp học được thoát ra ngoài; ví dụ, lệnh :S/[/]// trên chuỗi "xxx / yyy" sẽ
xóa '/' từ chuỗi. POSIX.1‐2008 không cho phép thực hành lịch sử này đối với
nhất quán và bởi vì nó đặt ra gánh nặng lớn cho việc triển khai bằng cách yêu cầu
kiến thức về biểu thức chính quy được tích hợp vào trình phân tích cú pháp của trình soạn thảo.

Về mặt lịch sử, trích dẫn nhân vật trong ex các lệnh được xử lý không nhất quán. Trong
hầu hết các trường hợp, ký tự luôn kết thúc lệnh, bất kể
ký tự thoát trước, bởi vì các nhân vật đã không trốn thoát
ký tự cho hầu hết ex các lệnh. Tuy nhiên, một số ex lệnh (ví dụ: s, bản đồ
viết tắt) được phép ký tự được thoát (mặc dù trong trường hợp bản đồ
viết tắt, Các ký tự ‐V đã thoát khỏi chúng thay vì nhân vật).
Điều này không chỉ đúng trong dòng lệnh mà còn .exrcnguồnd tệp. Ví dụ,
lệnh:

bản đồ = foo quán ba

sẽ thành công, mặc dù đôi khi rất khó để có được ‐V và được chèn
chuyển cho ex trình phân tích cú pháp. Để có tính nhất quán và đơn giản về đặc điểm kỹ thuật,
POSIX.1‐2008 yêu cầu rằng nó có thể thoát nhân vật trong ex lệnh tại
mọi lúc, sử dụng ký tự cho hầu hết ex lệnh và sử dụng ‐V
ký tự cho bản đồviết tắt các lệnh. Ví dụ, lệnh
in được yêu cầu phân tích cú pháp như một lệnh duy nhất in .
Mặc dù điều này khác với thực tiễn lịch sử, các nhà phát triển POSIX.1‐2008 tin rằng nó không chắc
rằng bất kỳ tập lệnh hoặc người dùng nào phụ thuộc vào hành vi lịch sử.

Trước đây, một lỗi trong một lệnh được chỉ định bằng cách sử dụng −c tùy chọn không gây ra phần còn lại
của −c lệnh bị loại bỏ. POSIX.1‐2008 không cho phép điều này để nhất quán với
các phím được ánh xạ, @, toàn cầu, nguồnv lệnh, XUẤT CẢNH biến môi trường và
các .exrc các tập tin.

Đầu vào Chỉnh sửa in ex
Một trong những cách sử dụng phổ biến của lịch sử ex trình chỉnh sửa quá kết nối mạng chậm.
Các trình chỉnh sửa chạy ở chế độ chuẩn có thể yêu cầu ít lưu lượng truy cập đến và đi hơn và cũng ít hơn nhiều
xử lý trên máy chủ, cũng như hỗ trợ các thiết bị đầu cuối chế độ khối dễ dàng hơn.
Vì những lý do này, POSIX.1‐2008 yêu cầu ex được triển khai bằng cách sử dụng đầu vào chế độ chuẩn
xử lý, như đã được thực hiện trong lịch sử.

POSIX.1‐2008 không yêu cầu 4 ký tự chỉnh sửa đầu vào BSD lịch sử `` xóa từ ''
hoặc `` tiếp theo theo nghĩa đen ''. Vì lý do này, không xác định được cách chúng được xử lý bởi ex,
mặc dù chúng phải có tác dụng cần thiết. Các triển khai giải quyết chúng sau
dòng đã được kết thúc bằng cách sử dụng hoặc là Ký tự ‐M và các triển khai
dựa vào sự hỗ trợ thiết bị đầu cuối của hệ thống cơ bản cho quá trình xử lý này, cả hai đều phù hợp.
Việc triển khai được khuyến khích sử dụng chức năng hệ thống cơ bản, nếu
có thể, để tương thích với các giao diện nhập văn bản hệ thống khác.

Trong lịch sử, khi ôi ký tự được sử dụng để giảm tự chủ mức độ,
con trỏ được di chuyển để hiển thị phần cuối mới của tự chủ ký tự, nhưng không di chuyển
con trỏ đến một dòng mới, cũng như không xóa Ký tự ‐D từ dòng.
POSIX.1‐2008 không chỉ định rằng con trỏ vẫn ở trên cùng một dòng hay phần còn lại của
dòng bị xóa; tuy nhiên, việc triển khai được khuyến khích mạnh mẽ để cung cấp
giao diện người dùng có thể; nghĩa là, con trỏ phải ở trên cùng một dòng và bất kỳ
Ký tự ‐D trên dòng sẽ bị xóa.

POSIX.1‐2008 không yêu cầu ký tự chỉnh sửa đầu vào BSD 4 lịch sử `` in lại '',
theo truyền thống ‐R, hiển thị lại đầu vào hiện tại từ người dùng. Đối với điều này
lý do và bởi vì chức năng không thể được triển khai sau khi dòng đã được
do người dùng chấm dứt, POSIX.1‐2008 không đưa ra yêu cầu nào về chức năng này.
Việc triển khai được khuyến khích mạnh mẽ để cung cấp chức năng lịch sử này, nếu
có thể.

Trong lịch sử, ‐Q đã không thực hiện một hàm tiếp theo theo nghĩa đen trong ex, như nó đã làm trong vi.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử để tránh phá vỡ lịch sử ex
tập lệnh và .exrc các tập tin.

ôi
Liệu ôi ký tự ngay lập tức sửa đổi tự chủ các ký tự trong lời nhắc là
để lại không xác định để việc triển khai có thể phù hợp với sự hiện diện của các hệ thống
không hỗ trợ chức năng này. Việc triển khai được khuyến khích để sửa đổi dòng và
hiển thị lại ngay lập tức, nếu có thể.

Đặc điểm kỹ thuật của việc xử lý ôi nhân vật khác với thực tiễn lịch sử
chỉ trong đó ôi các ký tự không bị loại bỏ nếu chúng tuân theo các ký tự bình thường trong văn bản
đầu vào. Trong lịch sử, chúng luôn bị loại bỏ.

Lệnh Mô tả in ex
Trước đây, một số lệnh (ví dụ: toàn cầu, v, trực quan, s, viết, wq, yank, !, <,
>, &~) có thể thực thi trong các tệp trống (nghĩa là (các) địa chỉ mặc định là 0) hoặc
cho phép địa chỉ rõ ràng là 0 (ví dụ: 0 là địa chỉ hợp lệ hoặc 0,0 là địa chỉ hợp lệ
phạm vi). Địa chỉ của 0 hoặc lệnh thực thi trong một tệp trống, chỉ có ý nghĩa đối với
lệnh thêm văn bản mới vào vùng đệm chỉnh sửa hoặc viết lệnh (vì người dùng có thể muốn
ghi các tệp trống). POSIX.1‐2008 yêu cầu hành vi này cho các lệnh như vậy và không cho phép nó
mặt khác, để có tính nhất quán và tính đơn giản của đặc điểm kỹ thuật.

Đếm đến một ex lệnh đã được sửa trong lịch sử để không lớn hơn lệnh cuối cùng
dòng trong một tệp; ví dụ, trong một tệp năm dòng, lệnh 1,6 bản in sẽ thất bại, nhưng
lệnh 1 bản in300 sẽ thành công. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trong lịch sử, việc sử dụng cờ trong ex các lệnh có thể bị che khuất. Lịch sử chung
thực hành như được mô tả bởi POSIX.1‐2008, nhưng có một số trường hợp đặc biệt. Vì
ví dụ, , con sốin các lệnh bỏ qua hiệu số địa chỉ theo sau; vì
thí dụ, 3p +++ # sẽ hiển thị dòng 3 và 3 sẽ là dòng hiện tại sau khi thực hiện
của lệnh. Các mởtrực quan các lệnh đã bỏ qua cả hiệu số cuối và
cờ theo sau. Ngoài ra, các cờ được chỉ định cho mởtrực quan các lệnh tương tác kém
với chỉnh sửa tùy chọn và cài đặt, sau đó bỏ thiết lập nó trong khi mở / hiển thị
phiên sẽ gây ra vi để dừng hiển thị các dòng ở định dạng đã chỉ định. Cho thống nhất
và tính đơn giản của đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép bất kỳ trường hợp ngoại lệ nào trong số này
quy tắc chung.

POSIX.1‐2008 sử dụng từ bản sao ở một số nơi khi thảo luận về bộ đệm. Đây không phải là
nhằm ngụ ý thực hiện.

Trong lịch sử, ex người dùng không thể chỉ định bộ đệm số vì điều này không rõ ràng
sẽ gây ra; ví dụ, trong lệnh 3 xóa 2, không rõ liệu 2 có phải là bộ đệm hay không
tên hoặc một tính. POSIX.1‐2008 theo mặc định yêu cầu tuân thủ thông lệ lịch sử, nhưng
không loại trừ các phần mở rộng.

Trước đây, nội dung của bộ đệm không tên thường bị loại bỏ sau các lệnh
điều đó đã không ảnh hưởng đến nó một cách rõ ràng; ví dụ, khi sử dụng chỉnh sửa lệnh chuyển đổi
các tập tin. Để có tính nhất quán và đơn giản về đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép điều này
hành vi.

Sản phẩm ex trước đây tiện ích không có quyền truy cập vào bộ đệm số và hơn nữa,
xóa các dòng trong ex đã không sửa đổi nội dung của họ. Ví dụ: nếu, sau khi thực hiện xóa
in vi, người dùng đã chuyển sang ex, đã xóa một lần khác, và sau đó chuyển trở lại vi, Các
nội dung của bộ đệm số sẽ không thay đổi. POSIX.1‐2008 yêu cầu tuân thủ
đến thực tiễn lịch sử. Bộ đệm số được mô tả trong ex tiện ích để
giới hạn mô tả của bộ đệm vào một vị trí duy nhất trong POSIX.1‐2008.

Các siêu ký tự kích hoạt mở rộng trình bao trong hồ sơ đối số khớp với lịch sử
thực hành, cũng như phương pháp để thực hiện mở rộng trình bao. Triển khai muốn cung cấp
người dùng có thể linh hoạt để thay đổi tập hợp các siêu ký tự được khuyến khích cung cấp
shellmeta tùy chọn chỉnh sửa chuỗi.

Trong lịch sử, ex các lệnh được thực hiện từ vi làm mới màn hình khi nó không hoàn toàn
cần phải làm như vậy; Ví dụ, :!ngày > / dev / null không yêu cầu làm mới màn hình vì
đầu ra của UNIX ngày lệnh chỉ yêu cầu một dòng duy nhất của màn hình.
POSIX.1‐2008 yêu cầu làm mới màn hình nếu nó đã bị ghi đè, nhưng làm cho
không có yêu cầu nào về cách thức thực hiện phải đưa ra quyết định đó.
Việc triển khai có thể nhắc và làm mới màn hình bất kể.

Viết tắt
Thực tiễn lịch sử là các ký tự được nhập như một phần của từ viết tắt
thay thế tùy thuộc vào bản đồ mở rộng, chương trình trận đấu chỉnh sửa tùy chọn, thêm nữa
mở rộng viết tắt, và như vậy; nghĩa là, chúng đã được đẩy lên thiết bị đầu cuối một cách hợp lý
hàng đợi đầu vào, và không phải là một sự thay thế đơn giản. POSIX.1‐2008 yêu cầu tuân thủ
thực tiễn lịch sử. Thực tiễn lịch sử là bất cứ khi nào một ký tự không phải từ (có
không được trốn thoát bởi một ‐V) được nhập sau một ký tự từ, vi sẽ kiểm tra
Các từ viết tắt. Kiểm tra dựa trên loại ký tự được nhập trước từ
ký tự của cặp từ / không phải từ đã kích hoạt kiểm tra. Các ký tự từ của
cặp từ / không phải từ đã kích hoạt kiểm tra và tất cả các ký tự được nhập trước trình kích hoạt
cặp thuộc loại đó đã được đưa vào séc, ngoại trừ
các ký tự, luôn được phân tách từ viết tắt.

Điều này có nghĩa là, để chữ viết tắt hoạt động, lh phải kết thúc bằng một ký tự từ,
không thể có quá trình chuyển đổi từ các ký tự từ sang các ký tự không phải từ (hoặc phó ngược lại) khác với
giữa các ký tự cuối cùng và tiếp theo đến cuối cùng trong lh, và không thể có
nhân vật trong lh. Ngoài ra, do các quy tắc trích dẫn lịch sử, nó đã
không thể nhập một chữ ‐V trong lh. POSIX.1‐2008 yêu cầu tuân thủ
đến thực tiễn lịch sử. Các triển khai trước đây không thông báo cho người dùng khi viết tắt
mà không bao giờ có thể được sử dụng đã được nhập; việc triển khai được khuyến khích mạnh mẽ để làm như vậy.

Ví dụ: các từ viết tắt sau sẽ hoạt động:

: ab (p Thay thế
: ab p Thay thế
: ab ((P Thay thế

Các từ viết tắt sau sẽ không hoạt động:

: ab ( Thay thế
: ab (trang Thay thế

Thực tiễn lịch sử là những từ trên vi dòng lệnh dấu hai chấm là đối tượng của
mở rộng chữ viết tắt, bao gồm các đối số cho viết tắt (và thú vị hơn)
không viết tắt yêu cầu. Bởi vì có những triển khai không mở rộng từ viết tắt
đối với đối số đầu tiên của các lệnh đó, điều này được phép, nhưng không bắt buộc, bởi
POSIX.1‐2008. Tuy nhiên, trình tự sau:

: ab foo thanh
: ab foo căn cứ

dẫn đến việc thêm một chữ viết tắt của "baz" cho chuỗi "quán ba" trong lịch sử
ex/vivà trình tự:

: ab foo1 thanh
: ab foo2 thanh
: không viết tắt foo2

đã xóa tên viết tắt "foo1", Chứ không phải "foo2". Những hành vi này không được phép bởi
POSIX.1‐2008 bởi vì chúng vi phạm rõ ràng sự mong đợi của người dùng.

Đó là thực tiễn lịch sử mà ‐V, không , các ký tự được hiểu là
thoát các ký tự tiếp theo trong viết tắt yêu cầu. POSIX.1‐2008 yêu cầu
sự phù hợp với thực tiễn lịch sử; tuy nhiên, cần lưu ý rằng một chữ viết tắt
chứa một sẽ không bao giờ hoạt động.

Nối
Về mặt lịch sử, bất kỳ văn bản nào sau dấu phân tách lệnh sau một thêm,
thay đổi, hoặc là chèn lệnh đã trở thành một phần của văn bản chèn. Ví dụ, trong lệnh:

: g / pattern / append | thing1

một dòng chứa văn bản "thứ1" sẽ được thêm vào mỗi mẫu đối sánh dòng. Nó
cũng có giá trị lịch sử để nhập:

: append | things1
thứ2
.

và văn bản trên ex dòng lệnh sẽ được thêm vào cùng với văn bản được chèn sau
nó. Tuy nhiên, có một lỗi lịch sử khiến người dùng phải nhập hai kết thúc
dòng (các '.' dòng) để chấm dứt chế độ nhập văn bản trong trường hợp này. POSIX.1‐2008 yêu cầu
phù hợp với thực tiễn lịch sử, nhưng không cho phép lịch sử cần nhiều
các dòng kết thúc.

Thay đổi
Xem CƠ SỞ LÝ LUẬN về thêm yêu cầu. Thực tiễn lịch sử để định vị con trỏ sau
lệnh thay đổi khi không có văn bản nào được nhập, như được mô tả trong POSIX.1‐2008. Tuy nhiên, một
Việc triển khai Hệ thống V được biết là đã được sửa đổi để con trỏ được định vị
trên địa chỉ đầu tiên được chỉ định chứ không phải trên dòng trước địa chỉ đầu tiên. POSIX.1‐2008
không cho phép sửa đổi này để có tính nhất quán.

Trong lịch sử, thay đổi lệnh không hỗ trợ các đối số đệm, mặc dù một số
triển khai cho phép đặc tả một bộ đệm tùy chọn. Hành vi này không
yêu cầu hoặc không được phép bởi POSIX.1‐2008.

Thay đổi thư mục
Một phần mở rộng phổ biến trong ex triển khai là sử dụng các phần tử của một đường dẫn cd chỉnh sửa tùy chọn như
thư mục tiền tố cho con đường đối số với chdir đó là tên đường dẫn tương đối và không phải
'.' or ".." là thành phần đầu tiên của họ. Các yếu tố trong đường dẫn cd tùy chọn chỉnh sửa là
-ly thân. Giá trị ban đầu của đường dẫn cd tùy chọn chỉnh sửa là giá trị của trình bao
CDPATH biến môi trường. Tính năng này không được bao gồm trong POSIX.1‐2008 vì nó có
không tồn tại trong bất kỳ triển khai nào được coi là thực tiễn lịch sử.

Sao chép
Triển khai lịch sử của ex các bản sao được phép đến các dòng bên trong phạm vi được chỉ định;
ví dụ, : 2,5copy3 là một lệnh hợp lệ. POSIX.1‐2008 yêu cầu tuân thủ
thực tiễn lịch sử.

Xóa bỏ
POSIX.1‐2008 yêu cầu hỗ trợ phân tích cú pháp lịch sử của xóa lệnh theo sau bởi
cờ, mà không có bất kỳ sự can thiệp nào nhân vật. Ví dụ:

1dp Xóa dòng đầu tiên và in dòng thứ hai.

1xóa Đối với 1dp.

1d Xóa dòng đầu tiên, lưu vào bộ đệm p.

1d p1l (Pee-one-ell.) Xóa dòng đầu tiên, lưu vào bộ đệm pvà liệt kê dòng
đó là thứ hai.

Chỉnh sửa
Trong lịch sử, bất kỳ ex lệnh có thể được nhập dưới dạng +lệnh đối số với chỉnh sửa yêu cầu,
mặc dù một số (ví dụ, chènthêm) được biết là gây nhầm lẫn lịch sử
triển khai. Để có tính nhất quán và đơn giản về đặc điểm kỹ thuật, POSIX.1‐2008 yêu cầu
rằng bất kỳ lệnh nào được hỗ trợ làm đối số cho chỉnh sửa chỉ huy.

Trước đây, đối số lệnh được thực thi với dòng hiện tại được đặt thành dòng cuối cùng
của tệp, bất kể chỉnh sửa lệnh có được thực thi từ chế độ trực quan hay không.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trong lịch sử, +lệnh được chỉ định cho chỉnh sửatiếp theo các lệnh được phân tách bằng
đầu tiên , và không có cách nào để trích dẫn chúng. Để có tính nhất quán, POSIX.1‐2008 yêu cầu
đó là bình thường ex trích dẫn gạch chéo ngược được cung cấp.

Về mặt lịch sử, xác định +lệnh đối số cho lệnh chỉnh sửa yêu cầu một tên tệp để
cũng được chỉ định; Ví dụ, chỉnh sửa: +100 sẽ luôn luôn thất bại. Để có tính nhất quán và
tính đơn giản của đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép việc sử dụng này bị lỗi
lý do.

Trước đây, chỉ có vị trí con trỏ của tệp cuối cùng được chỉnh sửa được ghi nhớ bởi
người biên tập. POSIX.1‐2008 yêu cầu điều này được hỗ trợ; tuy nhiên, triển khai là
được phép ghi nhớ và khôi phục vị trí con trỏ cho bất kỳ tệp nào đã được chỉnh sửa trước đó.

Tập tin
Các phiên bản lịch sử của ex biên tập viên hồ sơ lệnh hiển thị một dòng hiện tại và số
các dòng trong vùng đệm chỉnh sửa bằng 0 khi tệp trống, trong khi vi Lệnh ‐G
hiển thị một dòng hiện tại và số dòng trong bộ đệm chỉnh sửa của 1 trong cùng một
tình hình. POSIX.1‐2008 không cho phép sự khác biệt này, thay vào đó yêu cầu một thông báo
được hiển thị cho biết tệp trống.

Toàn cầu
Hoạt động hai lần của toàn cầuv các lệnh không nhằm ngụ ý
thực hiện, chỉ kết quả cần thiết của hoạt động.

Dòng và cột hiện tại được đặt như được chỉ định cho từng cá nhân ex các lệnh. Cái này
yêu cầu là tích lũy; nghĩa là, dòng và cột hiện tại phải theo dõi tất cả
các lệnh được thực hiện bởi toàn cầu or v lệnh.

Chèn
Xem CƠ SỞ LÝ LUẬN về thêm chỉ huy.

Trong lịch sử, chèn không thể được sử dụng với một địa chỉ bằng không; đó là, không phải khi chỉnh sửa
bộ đệm trống. POSIX.1‐2008 yêu cầu lệnh này hoạt động nhất quán với
thêm chỉ huy.

Tham gia
Hành động của tham gia lệnh liên quan đến các ký tự đặc biệt chỉ được định nghĩa cho
ngôn ngữ POSIX vì lượng khoảng trắng chính xác sau một khoảng thời gian khác nhau; trong
Tiếng Nhật không bắt buộc, tiếng Pháp chỉ có một dấu cách duy nhất, v.v.

Danh sách
Kết quả lịch sử của lệnh có thể không rõ ràng. Chuẩn mực
các nhà phát triển tin rằng việc sửa lỗi này quan trọng hơn việc tuân thủ các
thực hành và POSIX.1‐2008 yêu cầu đầu ra rõ ràng.

Bản đồ
Trước đây, các bản đồ chế độ lệnh chỉ áp dụng cho các tên lệnh; ví dụ, nếu
tính cách 'NS' đã được ánh xạ tới 'y', lệnh fx tìm kiếm 'NS' nhân vật, không phải
'y' tính cách. POSIX.1‐2008 yêu cầu hành vi này. Trong lịch sử, nhập ‐V như
ký tự đầu tiên của một vi lệnh bị lỗi. Một số triển khai đã được mở rộng
ngữ nghĩa của vi như vậy mà ‐V có nghĩa là ký tự lệnh tiếp theo là
không được ánh xạ. Điều này được phép, nhưng không bắt buộc, bởi POSIX.1‐2008. Bất chấp, sử dụng
‐V để thoát ký tự thứ hai trở lên trong một chuỗi ký tự có thể
phù hợp với một bản đồ lệnh hoặc bất kỳ ký tự nào trong chế độ nhập văn bản, là thông lệ lịch sử và
ngăn các phím đã nhập khớp với bản đồ. POSIX.1‐2008 yêu cầu tuân thủ
thực tiễn lịch sử.

Quá trình triển khai trước đây cho phép các chữ số được sử dụng làm bản đồ lệnh lh, nhưng sau đó
bỏ qua bản đồ. POSIX.1‐2008 yêu cầu không được bỏ qua các chữ số được ánh xạ.

Quá trình thực hiện lịch sử của bản đồ lệnh không cho phép bản đồ lệnh đó là
độ dài nhiều hơn một ký tự nếu ký tự đầu tiên có thể in được. Hành vi này
được phép, nhưng không bắt buộc, bởi POSIX.1‐2008.

Trong lịch sử, các ký tự được ánh xạ đã được ánh xạ lại trừ khi remap tùy chọn chỉnh sửa chưa được đặt, hoặc
tiền tố của các ký tự được ánh xạ khớp với các ký tự được ánh xạ; ví dụ, trong
bản đồ:

:bản đồ ab abcd

các nhân vật "ab" đã được sử dụng nguyên trạng và không được ánh xạ lại, nhưng các ký tự "CD"
ánh xạ nếu thích hợp. Điều này có thể gây ra các vòng lặp vô hạn trong vi các cơ chế ánh xạ.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử và các vòng lặp đó phải
gián đoạn.

Bản đồ nhập văn bản có cùng vấn đề với việc mở rộng lh cho ex bản đồ!bỏ bản đồ!
lệnh cũng như ex viết tắtkhông viết tắt các lệnh. Xem CƠ SỞ LÝ LUẬN về ex
viết tắt yêu cầu. POSIX.1‐2008 yêu cầu sửa đổi tương tự đối với một số thông lệ lịch sử
cho bản đồbỏ bản đồ các lệnh, như được mô tả cho viết tắtkhông viết tắt lệnh.

Trong lịch sử, bản đồđó là các tập hợp con của bản đồs cư xử khác nhau tùy thuộc vào
thứ tự mà chúng đã được xác định. Ví dụ:

:bản đồ! ab ngắn
:bản đồ! abc Dài

sẽ luôn dịch các ký tự "ab" đến "ngắn ngủi", bất kể tốc độ
nhân vật "abc" đã được nhập. Nếu thứ tự nhập bị đảo ngược:

:bản đồ! abc Dài
:bản đồ! ab ngắn

các nhân vật "ab" sẽ khiến trình chỉnh sửa tạm dừng, chờ hoàn thành 'NS'
và các ký tự có thể không bao giờ được ánh xạ tới "ngắn ngủi". Để có tính nhất quán và
tính đơn giản của đặc điểm kỹ thuật, POSIX.1‐2008 yêu cầu sử dụng kết hợp ngắn nhất
lần.

Khoảng thời gian mà người biên tập dành để đợi các ký tự hoàn thành lh is
không xác định vì khả năng định thời của các hệ thống thường không chính xác và có thể thay đổi, và
nó có thể phụ thuộc vào các yếu tố khác như tốc độ kết nối. Thời gian nên là
đủ lâu để người dùng có thể hoàn thành trình tự, nhưng không đủ lâu để
người dùng phải đợi. Một số triển khai của vi đã thêm một thời điểm chủ chốt tùy chọn, cái nào
cho phép người dùng đặt số 0,1 giây mà trình chỉnh sửa chờ hoàn thành
nhân vật. Bởi vì chức năng đầu cuối được ánh xạ và các phím con trỏ có xu hướng bắt đầu bằng
nhân vật, và là cái kết quan trọng vi chế độ nhập văn bản, bản đồbắt đầu bằng
các ký tự thường được miễn khỏi khoảng thời gian chờ này, hoặc ít nhất là đã hết thời gian chờ
khác nhau

Đánh dấu
Trước đây, người dùng có thể đặt dấu `` ngữ cảnh trước đó '' một cách rõ ràng. Trong
ngoài ra, ex lệnh '''`vi lệnh '', ``, `''` tất cả được đề cập đến
cùng một dấu. Ngoài ra, các dấu ngữ cảnh trước đó không được đặt nếu lệnh, với
mà việc thiết lập địa chỉ đánh dấu được liên kết, không thành công. POSIX.1‐2008 yêu cầu
sự phù hợp với thực tiễn lịch sử. Trước đây, nếu các dòng được đánh dấu bị xóa, dấu
cũng đã bị xóa, nhưng sẽ xuất hiện lại nếu thay đổi được hoàn tác. POSIX.1‐2008 yêu cầu
sự phù hợp với thực tiễn lịch sử.

Mô tả các sự kiện đặc biệt đã thiết lập `' đánh dấu các trận đấu lịch sử
thực hành. Ví dụ, trước đây lệnh / a /, / b / đã không thiết lập `' điểm, nhưng
lệnh / a /, / b / xóa đã làm.

Sau
Trong lịch sử, bất kỳ ex lệnh có thể được nhập dưới dạng +lệnh đối số với tiếp theo yêu cầu,
mặc dù một số (ví dụ, chènthêm) được biết là gây nhầm lẫn lịch sử
triển khai. POSIX.1‐2008 yêu cầu bất kỳ lệnh nào được phép và nó hoạt động như
được chỉ định. Các tiếp theo lệnh có thể chấp nhận nhiều hơn một tệp, vì vậy cách sử dụng như:

tiếp theo `l [abc] `

là hợp lệ; nó không cần thiết phải có giá trị cho chỉnh sửa or đọc ví dụ: vì chúng
chỉ mong đợi một tên tệp.

Trong lịch sử, tiếp theo lệnh hoạt động khác với lệnh : tua lại chỉ huy trong đó nó
bỏ qua cờ lực lượng nếu viết tự động cờ đã được thiết lập. Để có tính nhất quán, POSIX.1‐2008 không
không cho phép hành vi này.

Trong lịch sử, tiếp theo lệnh định vị con trỏ như thể tệp chưa bao giờ được chỉnh sửa
trước đây, bất chấp. POSIX.1‐2008 không cho phép hành vi này, vì sự nhất quán với
chỉnh sửa chỉ huy.

Các triển khai muốn cung cấp một đối tác cho tiếp theo lệnh đã chỉnh sửa
tệp trước đó đã sử dụng lệnh Trước], không cần hồ sơ lý lẽ. POSIX.1‐2008
không yêu cầu lệnh này.

Mở
Trong lịch sử, mở lệnh sẽ thất bại nếu mở tùy chọn chỉnh sửa chưa được đặt.
POSIX.1‐2008 không đề cập đến mở chỉnh sửa tùy chọn và không yêu cầu hành vi này.
Một số triển khai trước đây không cho phép vào chế độ mở từ chế độ mở hoặc chế độ trực quan,
chỉ từ ex chế độ. Để nhất quán, POSIX.1‐2008 không cho phép hành vi này.

Trước đây, vào chế độ mở từ dòng lệnh (nghĩa là vi + mở) dẫn đến
các hành vi bất thường; ví dụ, ex tập tin và định lệnh và vi lệnh
‐G không hoạt động. Để nhất quán, POSIX.1‐2008 không cho phép hành vi này.

Trong lịch sử, mở lệnh chỉ được phép '/' ký tự được sử dụng làm tìm kiếm
dấu phân cách mẫu. Để nhất quán, POSIX.1‐2008 yêu cầu các dấu phân cách tìm kiếm được sử dụng
bởi s, toàn cầuv các lệnh cũng được chấp nhận.

Bảo quản
Sản phẩm bảo tồn trước đây lệnh không khiến tệp được coi là chưa được sửa đổi đối với
mục đích của các lệnh trong tương lai có thể thoát khỏi trình soạn thảo. POSIX.1‐2008 yêu cầu
sự phù hợp với thực tiễn lịch sử.

Tài liệu lịch sử cho biết rằng thư không được gửi đến người dùng khi bảo quản là
Thực thi; tuy nhiên, các triển khai lịch sử đã gửi thư trong trường hợp này. POSIX.1‐2008
yêu cầu tuân thủ các triển khai lịch sử.

In
Việc viết NUL bởi in lệnh không được chỉ định là một trường hợp đặc biệt vì
các nhà phát triển tiêu chuẩn không muốn yêu cầu ex để hỗ trợ các ký tự NUL. Trong lịch sử,
các ký tự được hiển thị bằng cách sử dụng ánh xạ tiêu chuẩn ARPA, như sau:

1. Các ký tự có thể in được để riêng.

2. Các ký tự điều khiển nhỏ hơn \ 177 được biểu thị bằng '^' theo sau là nhân vật
bù đắp từ '@' ký tự trong bản đồ ASCII; ví dụ: \ 007 được biểu thị là
'^ G'.

3. \ 177 được đại diện là '^' tiếp theo '?'.

Việc hiển thị các ký tự có bộ bit thứ tám của chúng kém chuẩn hơn. Hiện có
triển khai sử dụng hex (0x00), bát phân (\ 000) và hiển thị meta-bit. (Cái sau
các byte được hiển thị có bit thứ tám của chúng được đặt làm hai ký tự "M−" tiếp theo là
hiển thị bảy bit như được mô tả ở trên.) Cái sau có lẽ có yêu cầu tốt nhất để
thực tiễn lịch sử vì nó đã được sử dụng cho −v tùy chọn 4 BSD và 4 BSD bắt nguồn từ
phiên bản của làm sao tiện ích từ năm 1980.

Không có định dạng hiển thị cụ thể nào được yêu cầu bởi POSIX.1‐2008.

Sự phụ thuộc rõ ràng vào bộ ký tự ASCII đã được tránh nếu có thể, do đó
sử dụng cụm từ `` chuỗi nhiều ký tự do triển khai xác định '' cho màn hình
các ký tự không thể in được tùy theo cách sử dụng trước đây của, ví dụ: "^ Tôi"
cho . Việc triển khai được khuyến khích để phù hợp với thực tiễn lịch sử trong
không có bất kỳ lý do mạnh mẽ nào để phân tách.

Trong lịch sử, tất cả ex lệnh bắt đầu bằng chữ cái 'P' có thể được nhập bằng cách sử dụng
phiên bản viết hoa của các lệnh; Ví dụ, In], Bảo tồn]Đặt] là tất cả
tên lệnh hợp lệ. POSIX.1‐2008 cho phép, nhưng không yêu cầu, thông lệ lịch sử này
bởi vì các dạng vốn của các lệnh được sử dụng bởi một số triển khai cho các mục đích khác.

Đặt
Trong lịch sử, một ex đặt lệnh, được thực thi từ chế độ mở hoặc chế độ trực quan, giống như lệnh
chế độ mở hoặc trực quan P lệnh, nếu bộ đệm được đặt tên và bị cắt ở chế độ ký tự, và
giống như p lệnh nếu vùng đệm được đặt tên và cắt ở chế độ dòng. Nếu không tên
bộ đệm là nguồn của văn bản, toàn bộ dòng mà văn bản được lấy là
thường đặtvà bộ đệm được xử lý như thể ở chế độ dòng, nhưng có thể lấy
hành vi cực kỳ dị thường. Ngoài ra, bằng cách sử dụng Q lệnh chuyển thành ex chế độ, và
sau đó làm một đặt cũng thường dẫn đến lỗi, chẳng hạn như văn bản nối
không liên quan đến nội dung (được cho là) ​​của bộ đệm. Để có tính nhất quán và đơn giản
đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép những hành vi này. Tất cả ex đặt lệnh là
cần thiết để hoạt động ở chế độ dòng và nội dung của bộ đệm không bị thay đổi bởi
thay đổi chế độ của trình soạn thảo.

Đọc
Trong lịch sử, một ex đọc lệnh được thực thi từ chế độ mở hoặc chế độ trực quan, được thực thi trong một khoảng trống
tệp, để lại một dòng trống làm dòng đầu tiên của tệp. Để có tính nhất quán và đơn giản
đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép hành vi này. Trong lịch sử, một đọc đang mở
hoặc chế độ trực quan từ một chương trình để con trỏ ở dòng cuối cùng được đọc vào, không phải dòng đầu tiên. Vì
nhất quán, POSIX.1‐2008 không cho phép hành vi này.

Triển khai lịch sử của ex không thể hoàn tác đọc các lệnh đọc từ
đầu ra của một chương trình. Để nhất quán, POSIX.1‐2008 không cho phép hành vi này.

Trong lịch sử, exvi tin nhắn sau khi thành công đọc or viết lệnh được chỉ định
`` ký tự '', không phải `` byte ''. POSIX.1‐2008 yêu cầu số byte phải là
được hiển thị chứ không phải số ký tự vì có thể khó ở dạng nhiều byte
triển khai để xác định số ký tự được đọc. Việc triển khai được khuyến khích
để làm rõ thông báo hiển thị cho người dùng.

Trước đây, không được phép đọc trên các tệp không phải là loại thông thường, ngoại trừ FIFO đó
các tệp có thể được đọc (có thể chỉ vì chúng không tồn tại khi exvi
ban đầu được viết). Bởi vì lịch sử ex đánh giá đọc!đọc ! tương đương,
không thể có cách tùy chọn để buộc đọc. POSIX.1‐2008 cho phép, nhưng không
yêu cầu, hành vi này.

Phục hồi
Một số triển khai trước đây của trình chỉnh sửa đã cho phép người dùng khôi phục bộ đệm chỉnh sửa
nội dung từ phiên chỉnh sửa trước đó và sau đó thoát ra mà không lưu những nội dung đó (hoặc
loại bỏ chúng một cách rõ ràng). Mục đích của POSIX.1‐2008 trong việc yêu cầu bộ đệm chỉnh sửa
được coi là đã được sửa đổi là để ngăn chặn lỗi người dùng này.

Quay lại
Các triển khai trong lịch sử đã hỗ trợ tua lại lệnh khi người dùng đang chỉnh sửa
tập tin đầu tiên trong danh sách; đó là, tệp mà tua lại lệnh sẽ chỉnh sửa. POSIX.1‐2008
yêu cầu phù hợp với thực tiễn lịch sử.

Thay thế
Trong lịch sử, ex chấp nhận một r tùy chọn cho s yêu cầu. Tác dụng của r tùy chọn là
sử dụng biểu thức chính quy cuối cùng được sử dụng trong bất kỳ lệnh nào làm mẫu, giống như ~
chỉ huy. Các r tùy chọn không được yêu cầu bởi POSIX.1‐2008. Trong lịch sử, cg lựa chọn
đã được chuyển đổi; ví dụ, lệnh : s / abc / def / giống như s / abc / def / ccccgggg.
Để đơn giản hóa đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép hành vi này.

Lệnh dấu ngã thường được dùng để thay thế lần tìm kiếm cuối cùng RE. Ví dụ, trong
sự nối tiếp:

s / đỏ / xanh lam /
/màu xanh lá
~

các ~ lệnh tương đương với:

s / xanh lá cây / xanh lam /

Trong lịch sử, ex đã chấp nhận tất cả các hình thức sau:

s / abc / def /
s / abc / def
s / abc /
s / abc

POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử này.

Sản phẩm s lệnh giả định rằng '^' ký tự chỉ chiếm một cột duy nhất trong
trưng bày. Nhiều của exvi đặc điểm kỹ thuật giả định rằng chỉ chiếm một
một cột trong màn hình. Không có bộ ký tự nào đã biết mà đây không phải là
sự thật.

Trước đây, vị trí cột cuối cùng cho các lệnh thay thế dựa trên
chuyển động của cột; tìm kiếm một mẫu theo sau bởi một thay thế sẽ rời khỏi cột
vị trí không thay đổi, trong khi lệnh 0 theo sau bởi lệnh thay thế sẽ thay đổi cột
vị trí đầu tiên không phải . Để có tính nhất quán và đơn giản về đặc điểm kỹ thuật,
POSIX.1‐2008 yêu cầu vị trí cột cuối cùng luôn được đặt thành đầu tiên
không .

Thiết lập
Các triển khai trong lịch sử đã hiển thị lại tất cả các tùy chọn cho mỗi lần xuất hiện của tất cả các
từ khóa. POSIX.1‐2008 cho phép, nhưng không yêu cầu, hành vi này.

Nhãn
Không có yêu cầu nào được đưa ra về nơi exvi sẽ tìm kiếm tệp được tham chiếu bởi thẻ
lối vào. Thực tiễn lịch sử đã tìm kiếm con đường được tìm thấy trong thẻ tập tin, dựa trên
thư mục hiện tại. Một tiện ích mở rộng hữu ích được tìm thấy trong một số triển khai là giao diện dựa trên
trên thư mục chứa tệp thẻ chứa mục nhập. Không có yêu cầu là
làm cho tham chiếu nào cho thẻ trong tệp thẻ được sử dụng. Đây là cố ý, trong
để cho phép các phần mở rộng, chẳng hạn như nhiều mục nhập trong một tệp thẻ cho một thẻ.

Bởi vì người dùng thường chỉ định nhiều tệp thẻ khác nhau, một số tệp trong số đó không cần phải liên quan
hoặc tồn tại tại bất kỳ thời điểm cụ thể nào, POSIX.1‐2008 yêu cầu thông báo lỗi về sự cố
các tệp thẻ chỉ được hiển thị nếu không tìm thấy thẻ được yêu cầu và sau đó, chỉ một lần cho
mỗi lần mà tag tùy chọn chỉnh sửa được thay đổi.

Yêu cầu không sửa đổi bộ đệm chỉnh sửa hiện tại chỉ cần thiết nếu tệp
được chỉ ra bởi mục nhập thẻ không giống với tệp hiện tại (như được xác định bởi hiện tại
tên đường dẫn). Trước đây, tệp sẽ được tải lại nếu tên tệp đã thay đổi,
như thể tên tệp khác với tên đường dẫn hiện tại. Để có tính nhất quán và đơn giản
đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép hành vi này, yêu cầu tên phải
yếu tố duy nhất trong quyết định.

Trong lịch sử, vi chỉ tìm kiếm các thẻ trong tệp hiện tại từ con trỏ hiện tại đến
cuối tệp, và do đó, nếu kết thúc quét tùy chọn chưa được đặt, các thẻ xuất hiện trước đó
con trỏ hiện tại không được tìm thấy. POSIX.1‐2008 coi đây là một lỗi và triển khai
được yêu cầu để tìm kiếm lần xuất hiện đầu tiên trong tệp, bất kể.

Undo
Sản phẩm lùi lại mô tả cố tình sử dụng từ `` sửa đổi ''. Các lùi lại lệnh không
nhằm hoàn tác các lệnh thay thế nội dung của bộ đệm chỉnh sửa, chẳng hạn như chỉnh sửa,
tiếp theo, tag, hoặc là lấy lại.

Định vị con trỏ sau lùi lại lệnh không nhất quán trong lịch sử vi, đôi khi
cố gắng khôi phục vị trí con trỏ ban đầu (toàn cầu, lùi lạiv lệnh), và
đôi khi, khi có bản đồ, việc đặt con trỏ vào dòng cuối cùng được thêm vào hoặc thay đổi
thay vì cái đầu tiên. POSIX.1‐2008 yêu cầu một hành vi được đơn giản hóa để có tính nhất quán và
tính đơn giản của đặc điểm kỹ thuật.

phiên bản
Sản phẩm phiên bản không thể chỉ định chính xác lệnh vì không có lệnh nào được chấp nhận rộng rãi
định nghĩa thông tin phiên bản nên chứa những gì. Việc triển khai được khuyến khích
để làm điều gì đó thông minh một cách hợp lý.

Viết
Trong lịch sử, exvi tin nhắn sau khi thành công đọc or viết lệnh được chỉ định
`` ký tự '', không phải `` byte ''. POSIX.1‐2008 yêu cầu số byte phải là
được hiển thị chứ không phải số ký tự vì nó có thể khó ở dạng nhiều byte
triển khai để xác định số ký tự được viết. Triển khai là
khuyến khích để làm rõ thông báo hiển thị cho người dùng.

Các thử nghiệm do triển khai xác định được cho phép để việc triển khai có thể bổ sung
Séc; ví dụ, đối với khóa hoặc thời gian sửa đổi tệp.

Trước đây, việc cố gắng thêm vào một tệp không tồn tại đã gây ra lỗi. Nó đã được để lại
không xác định trong POSIX.1‐2008 để cho phép triển khai cho phép viết thành công, do đó
ngữ nghĩa của phần phụ tương tự như ngữ nghĩa của lịch sử csh.

Lịch sử vi cho phép các bộ đệm chỉnh sửa trống được viết. Tuy nhiên, kể từ khi cách vi
xung quanh việc xử lý các tệp `` trống '' là phải luôn có một dòng trong bộ đệm chỉnh sửa, không
vấn đề là gì, nó đã viết chúng dưới dạng các tệp của một dòng trống. POSIX.1‐2008 không cho phép
hành vi này.

Trong lịch sử, ex đã khôi phục đầu ra tiêu chuẩn và lỗi tiêu chuẩn về các giá trị của chúng kể từ khi ex
đã được gọi, trước khi ghi vào chương trình được thực hiện. Điều này có thể làm phiền thiết bị đầu cuối
cũng như là một vấn đề bảo mật cho một số thiết bị đầu cuối. POSIX.1‐2008 không
cho phép điều này, yêu cầu rằng đầu ra chương trình được ghi lại và hiển thị như thể bởi ex
in chỉ huy.

Điều chỉnh Cửa sổ
Trước đây, số lượng dòng được đặt thành giá trị của di chuyển tùy chọn nếu loại
ký tự ở cuối tệp. Tính năng này đã bị hỏng trên hầu hết các lần triển khai lịch sử lâu đời
trước đây, tuy nhiên, và không được ghi lại ở bất cứ đâu. Vì lý do này, POSIX.1‐2008 kiên quyết
im lặng.

Trong lịch sử, z lệnh là - nhạy cảm và z +z - đã làm những điều khác nhau
hơn z+z− bởi vì loại không thể được phân biệt với một cờ. (Các lệnh z .
z = trước đây không hợp lệ.) POSIX.1‐2008 yêu cầu tuân theo lịch sử này
thực hành.

Trong lịch sử, z lệnh đã được xa hơn - nhạy cảm ở chỗ tính Không thể
-delimited; ví dụ, các lệnh z= 5z− 5 cũng không hợp lệ. Bởi vì
tính không mơ hồ đối với ký tự kiểu hoặc các cờ, điều này không
được phép bởi POSIX.1‐2008.

trốn thoát
Trong lịch sử, ex bộ lọc lệnh chỉ đọc đầu ra tiêu chuẩn của các lệnh, cho phép
lỗi tiêu chuẩn xuất hiện trên thiết bị đầu cuối như bình thường. Các vi tiện ích, tuy nhiên, đọc cả hai
đầu ra tiêu chuẩn và lỗi tiêu chuẩn. POSIX.1‐2008 yêu cầu hành vi sau cho cả hai ex
vi, cho thống nhất.

sự thay đổi Còn lại sự thay đổi Đúng
Trước đây, có thể thêm các ký tự shift để tăng hiệu ứng của
yêu cầu; Ví dụ, << vượt trội (hoặc >>> thụt lề) dòng 3 mức độ thụt lề
thay vì mặc định 1. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

‐D
Trong lịch sử, Lệnh ‐D đã xóa lời nhắc, cung cấp cho người dùng một
trình bày liên tục các dòng từ bộ đệm chỉnh sửa. Điều này không được yêu cầu bởi POSIX.1‐2008;
việc triển khai được khuyến khích cung cấp nếu có thể. Trong lịch sử, ‐D
lệnh được thực hiện, và sau đó bỏ qua, tính. POSIX.1‐2008 không cho phép hành vi này.

Viết Dòng Con số
Trong lịch sử, ex = lệnh, khi được thực thi trong ex chế độ trong bộ đệm chỉnh sửa trống, được báo cáo
0, và từ chế độ mở hoặc chế độ trực quan, được báo cáo 1. Để nhất quán và đơn giản
đặc điểm kỹ thuật, POSIX.1‐2008 không cho phép hành vi này.

Thực hiện
Trong lịch sử, ex đã không xử lý chính xác việc bao gồm các lệnh nhập văn bản (nghĩa là
thêm, chènthay đổi) trong bộ đệm được thực thi. POSIX.1‐2008 không cho phép điều này
loại trừ cho nhất quán.

Về mặt lịch sử, nội dung logic của bộ đệm được thực thi không thay đổi nếu
bản thân bộ đệm đã được sửa đổi bởi các lệnh đang được thực thi; nghĩa là, thực thi bộ đệm đã làm
không hỗ trợ mã tự sửa đổi. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trong lịch sử, @ lệnh có một loạt các dòng, và @ bộ đệm được thực thi một lần mỗi
dòng, với dòng hiện tại ('.') được đặt thành từng dòng được chỉ định. POSIX.1‐2008 yêu cầu
sự phù hợp với thực tiễn lịch sử.

Một số triển khai trước đây không thông báo nếu lỗi xảy ra trong quá trình thực thi bộ đệm.
Điều này, cùng với khả năng chỉ định một loạt các dòng cho ex @ lệnh, làm cho nó
tầm thường để làm cho chúng giảm cốt lõi. POSIX.1‐2008 yêu cầu ngừng triển khai
thực thi bộ đệm nếu có bất kỳ lỗi nào xảy ra, nếu dòng được chỉ định không tồn tại hoặc nếu
nội dung của chính bộ đệm chỉnh sửa được thay thế (ví dụ: bộ đệm thực thi ex
chỉnh sửa: chỉ huy).

Đều đặn Biểu thức in ex
Thực tiễn lịch sử là các nhân vật trong phần thay thế của s yêu cầu-
có nghĩa là, những kết quả phù hợp bằng cách nhập '~' trong biểu thức chính quy — không còn nữa
được mở rộng bởi công cụ biểu thức chính quy. Vì vậy, nếu các ký tự chứa chuỗi
"Một.," họ sẽ phù hợp 'a' tiếp theo ".," và không 'a' theo sau bởi bất kỳ ký tự nào.
POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Chỉnh sửa Các lựa chọn in ex
Các đoạn sau mô tả hành vi lịch sử của một số tùy chọn chỉnh sửa đã
không, vì bất kỳ lý do gì, được đưa vào POSIX.1‐2008. Triển khai mạnh mẽ
khuyến khích chỉ sử dụng những tên này nếu chức năng được mô tả ở đây được hỗ trợ đầy đủ.

gia tăng Sản phẩm gia tăng tùy chọn chỉnh sửa đã được sử dụng trong một số triển khai của vi để cung cấp
biểu thức chính quy mở rộng thay vì biểu thức chính quy cơ bản Tùy chọn này
đã bị bỏ qua khỏi POSIX.1‐2008 vì nó không phải là thông lệ lịch sử phổ biến.

đèn flash Sản phẩm đèn flash chỉnh sửa tùy chọn trước đây khiến màn hình nhấp nháy thay vì tiếng bíp
về lỗi. Tùy chọn này đã bị bỏ qua khỏi POSIX.1‐2008 vì nó không được tìm thấy trong
một số triển khai lịch sử.

tấm bìa cứng Sản phẩm tấm bìa cứng chỉnh sửa tùy chọn đã xác định trước đây số lượng cột giữa
cài đặt tab phần cứng. Tùy chọn này đã bị bỏ qua khỏi POSIX.1‐2008 vì nó là
được cho là không còn hữu ích nói chung.

người mẫu Sản phẩm người mẫu (đôi khi được đặt tên người mẫu) chỉnh sửa tùy chọn gây ra trước đây ex or
vi để đọc năm dòng đầu tiên và cuối cùng của tệp cho các lệnh của trình soạn thảo. Điều này
tùy chọn là một vấn đề bảo mật và các nhà cung cấp được khuyến khích xóa nó
từ các triển khai lịch sử.

mở Sản phẩm mở chỉnh sửa tùy chọn trước đây không cho phép ex mởtrực quan lệnh.
Tùy chọn chỉnh sửa này đã bị bỏ qua vì các lệnh này được yêu cầu bởi
POSIX.1-2008.

tối ưu hóa Sản phẩm tối ưu hóa chỉnh sửa tùy chọn thông lượng văn bản được xúc tiến trước đây bằng cách đặt
thiết bị đầu cuối để không làm tự động ký tự khi in thêm
hơn một dòng đầu ra hợp lý. Tùy chọn này đã bị bỏ qua khỏi POSIX.1‐2008
bởi vì nó được thiết kế cho các thiết bị đầu cuối không có con trỏ địa chỉ,
hiếm khi, nếu đã từng, vẫn được sử dụng.

người cai trị Sản phẩm người cai trị tùy chọn chỉnh sửa đã được sử dụng trong một số triển khai của vi trình bày một
thước đo hàng / cột hiện tại cho người dùng. Tùy chọn này đã bị bỏ qua khỏi POSIX.1‐2008
bởi vì nó không phải là thông lệ lịch sử phổ biến.

nguồn Sản phẩm nguồn chỉnh sửa tùy chọn trước đây gây ra ex or vi để tạo nguồn cho các tệp khởi động
được sở hữu bởi những người dùng không phải là người dùng đang chạy trình chỉnh sửa. Tùy chọn này là
một vấn đề bảo mật và các nhà cung cấp được khuyến khích loại bỏ nó khỏi
thực hiện.

thời gian chờ Sản phẩm thời gian chờ chỉnh sửa tùy chọn trước đây đã bật tính năng (bây giờ là tiêu chuẩn) của chỉ
đợi một khoảng thời gian ngắn trước khi trả lại các khóa có thể là một phần của macro.
Tính năng này đã bị bỏ qua khỏi POSIX.1‐2008 vì hành vi của nó hiện là tiêu chuẩn,
nó không hữu ích rộng rãi và hiếm khi được ghi lại.

dài dòng Sản phẩm dài dòng tùy chọn chỉnh sửa đã được sử dụng trong một số triển khai của vi gây ra vi
để xuất ra các thông báo lỗi cho các lỗi thông thường; ví dụ, cố gắng di chuyển
con trỏ qua đầu hoặc cuối dòng thay vì chỉ cảnh báo
màn hình. (Lịch sử vi chỉ cảnh báo thiết bị đầu cuối và không có thông báo nào
cho những lỗi như vậy. Tùy chọn trình chỉnh sửa lịch sử ngắn gọn không chọn khi nào
hiện thông báo lỗi, nó chỉ làm cho các thông báo lỗi hiện có ít nhiều
verbose.) Tùy chọn này đã bị bỏ qua khỏi POSIX.1‐2008 vì nó không phổ biến
thực hành lịch sử; tuy nhiên, những người thực hiện được khuyến khích sử dụng nó nếu họ muốn
để cung cấp thông báo lỗi cho người dùng ngây thơ.

bao bọc Sản phẩm bao bọc tùy chọn chỉnh sửa đã được sử dụng trong một số triển khai của vi để cụ thể hóa
một lề tự động được đo từ lề trái thay vì từ bên phải
lề. Điều này hữu ích khi nhiều kích thước màn hình đang được sử dụng để chỉnh sửa
một tập tin. Tùy chọn này đã bị bỏ qua khỏi POSIX.1‐2008 vì nó không phải là
thực hành lịch sử rộng rãi; tuy nhiên, những người triển khai được khuyến khích sử dụng
nếu họ thêm chức năng này.

tự động, ai
Trong lịch sử, lệnh 0a không thực hiện bất kỳ thông báo tự động nào, bất kể hiện tại là gì
thụt lề dòng 1. POSIX.1‐2008 yêu cầu bất kỳ thụt lề nào trong dòng 1 phải
đã sử dụng.

in tự động, ap
Trong lịch sử, in tự động tùy chọn chỉnh sửa không hoàn toàn nhất quán hoặc chỉ dựa trên
sửa đổi đối với bộ đệm chỉnh sửa. Các trường hợp ngoại lệ là đọc lệnh (khi đọc từ một
tệp, nhưng không phải từ bộ lọc), thêm, thay đổi, chèn, toàn cầuv lệnh, tất cả
không bị ảnh hưởng bởi in tự động, và tag lệnh, bị ảnh hưởng bởi
in tự động. POSIX.1‐2008 yêu cầu tuân thủ thông lệ lịch sử.

Trong lịch sử, in tự động tùy chọn chỉ áp dụng cho lệnh cuối cùng của nhiều lệnh đã nhập
sử dụng dấu phân cách; Ví dụ, xóa bị ảnh hưởng bởi in tự động,
nhưng xóa | phiên bản không phải. POSIX.1‐2008 yêu cầu tuân theo lịch sử
thực hành.

viết tự động, aw
Thêm vào '!' nhân vật ex tiếp theo lệnh để tránh thực hiện ghi tự động
không được hỗ trợ trong các triển khai lịch sử. POSIX.1‐2008 yêu cầu rằng hành vi
phù hợp với cái khác ex lệnh cho nhất quán.

bỏ qua trường hợp, ic
Quá trình triển khai trước đây của đối sánh không phân biệt chữ hoa chữ thường ( bỏ qua trường hợp chỉnh sửa tùy chọn) dẫn
để chống lại các tình huống trực quan khi các ký tự viết hoa được sử dụng trong các biểu thức phạm vi.
Trong lịch sử, quá trình này diễn ra như sau:

1. Lấy một dòng văn bản từ bộ đệm chỉnh sửa.

2. Chuyển chữ hoa thành chữ thường trong dòng văn bản.

3. Chuyển đổi chữ hoa thành chữ thường trong biểu thức chính quy, ngoại trừ trong lớp ký tự
thông số kỹ thuật.

4. So khớp biểu thức chính quy với văn bản.

Điều này có nghĩa là, với bỏ qua trường hợp trên thực tế, văn bản:

Sản phẩm làm sao Th 7 on các Thực phẩm

sẽ được kết hợp bởi

/ ^ cái /

nhưng không phải bởi:

/ ^ [A-Z] anh ấy /

Để nhất quán với các lệnh khác triển khai biểu thức chính quy, POSIX.1‐2008 thực hiện
không cho phép hành vi này.

đoạn văn, para
Tiêu chuẩn ISO POSIX ‐ 2: 1993 làm tiêu chuẩn mặc định đoạn vănphần chỉnh sửa các tùy chọn
được xác định bởi triển khai, lập luận rằng chúng đã được định hướng về mặt lịch sử đối với hệ thống UNIX troff
văn bản định dạng và một `` người dùng di động '' có thể sử dụng {, }, [[, ]], () lệnh trong
mở hoặc chế độ trực quan và dừng con trỏ ở những nơi không mong muốn. POSIX.1‐2008 chỉ định
các giá trị của chúng trong ngôn ngữ POSIX vì cách nhóm bất thường (chúng chỉ hoạt động khi được nhóm lại
thành hai ký tự cùng một lúc) có nghĩa là chúng không thể được sử dụng cho mục đích chung
chuyển động, bất chấp.

chỉ đọc
Việc triển khai được khuyến khích để cung cấp thông tin tốt nhất có thể cho người dùng về
trạng thái chỉ đọc của tệp, ngoại trừ việc họ không nên xem xét
các đặc quyền hiện tại của quy trình. Điều này cung cấp cho người dùng một mạng lưới an toàn vì
chúng phải buộc ghi đè lên các tệp chỉ đọc, ngay cả khi chạy với các tệp bổ sung
đặc quyền.

Sản phẩm chỉ đọc chỉnh sửa đặc tả tùy chọn phần lớn phù hợp với thông lệ lịch sử. Duy nhất
sự khác biệt là các triển khai trước đây không nhận thấy rằng người dùng đã đặt
chỉ đọc chỉnh sửa tùy chọn trong trường hợp tệp đã được đánh dấu là chỉ đọc vì một số lý do,
và do đó sẽ khởi động lại chỉ đọc chỉnh sửa tùy chọn vào lần tiếp theo nội dung của
bộ đệm chỉnh sửa đã được thay thế. Hành vi này không được POSIX.1‐2008 cho phép.

báo cáo
Yêu cầu mà các dòng được sao chép vào bộ đệm tương tác khác với các dòng đã xóa là
thực tiễn lịch sử. Ví dụ, nếu báo cáo tùy chọn chỉnh sửa được đặt thành 3, xóa 3 dòng
sẽ khiến báo cáo được viết, nhưng phải sao chép 4 dòng trước khi viết báo cáo.

Yêu cầu rằng ex toàn cầu, v, mở, lùi lạitrực quan lệnh trình bày báo cáo
dựa trên tổng số dòng được thêm vào hoặc xóa trong quá trình thực thi lệnh và
các lệnh được thực hiện bởi toàn cầuv lệnh không hiển thị báo cáo, là lịch sử
thực hành. POSIX.1‐2008 mở rộng thực tiễn lịch sử bằng cách yêu cầu thực thi bộ đệm
đối xử tương tự. Những lý do cho điều này là gấp đôi. Trong lịch sử, chỉ có báo cáo của
lệnh cuối cùng được thực thi từ bộ đệm sẽ được người dùng nhìn thấy, vì mỗi báo cáo mới sẽ
ghi đè cuối cùng. Ngoài ra, các nhà phát triển tiêu chuẩn tin rằng thực thi bộ đệm
có nhiều điểm chung với toàn cầuv các lệnh so với các lệnh khác ex lệnh và
nên hoạt động tương tự, vì sự nhất quán và đơn giản của đặc điểm kỹ thuật.

chương trình trận đấu, sm
Khoảng thời gian con trỏ dành cho ký tự phù hợp là không xác định vì
khả năng định thời của hệ thống thường không chính xác và có thể thay đổi. Thời gian phải dài
đủ để người dùng nhận thấy, nhưng không đủ lâu để người dùng trở nên khó chịu. Một số
triển khai của vi đã thêm một thời gian trận đấu tùy chọn cho phép người dùng đặt số
trong khoảng thời gian 0,1 giây, con trỏ sẽ tạm dừng trên ký tự phù hợp.

chế độ hiển thị
Sản phẩm chế độ hiển thị tùy chọn đã được sử dụng trong một số triển khai lịch sử của exvi đến
hiển thị chế độ chỉnh sửa hiện tại khi ở chế độ mở hoặc chế độ trực quan. Các chế độ chỉnh sửa có
thường bao gồm `` lệnh '' và `` đầu vào '', và đôi khi các chế độ khác như
`` thay thế '' và `` thay đổi ''. Chuỗi thường được hiển thị ở dòng dưới cùng của
màn hình ở góc ngoài cùng bên phải. Ngoài ra, một '*' ký tự thường được biểu thị
nội dung của bộ đệm chỉnh sửa đã được sửa đổi hay chưa. Màn hình sau có
đôi khi là một phần của chế độ hiển thị và đôi khi dựa trên một tùy chọn khác. Điều này
không có tùy chọn trong quá trình triển khai lịch sử 4 BSD của vi, nhưng được xem là
thường hữu ích, đặc biệt đối với người dùng mới làm quen và được yêu cầu bởi POSIX.1‐2008.

Sản phẩm SMD tốc ký cho chế độ hiển thị tùy chọn không có trong tất cả các lịch sử
triển khai của trình soạn thảo. POSIX.1‐2008 yêu cầu nó, để có tính nhất quán.

Không phải tất cả các triển khai lịch sử của trình chỉnh sửa đều hiển thị một chuỗi chế độ cho chế độ lệnh,
phân biệt chế độ lệnh với chế độ nhập văn bản bằng cách không có chuỗi chế độ.
POSIX.1‐2008 cho phép hành vi này nhất quán với thực tiễn lịch sử, nhưng
triển khai được khuyến khích để cung cấp một chuỗi hiển thị cho cả hai chế độ.

làm chậm lại
Trong lịch sử, làm chậm lại tùy chọn được đặt tự động nếu tốc độ truyền của thiết bị đầu cuối thấp hơn
hơn 1200 baud hoặc nếu tốc độ baud là 1200 baud và vẽ lại tùy chọn chưa được đặt. Các
làm chậm lại tùy chọn có hai hiệu ứng. Đầu tiên, khi chèn các ký tự vào giữa dòng,
các ký tự sau con trỏ sẽ không được đẩy lên phía trước mà có vẻ như bị ghi đè.
Thứ hai, khi tạo một dòng văn bản mới, các dòng sau dòng hiện tại sẽ không
được cuộn xuống, nhưng có vẻ như sẽ bị ghi đè. Trong cả hai trường hợp, kết thúc chế độ nhập văn bản
sẽ làm cho màn hình được làm mới để khớp với nội dung thực tế của bộ đệm chỉnh sửa.
Cuối cùng, các thiết bị đầu cuối đủ thông minh khiến trình soạn thảo bỏ qua
làm chậm lại lựa chọn. POSIX.1‐2008 cho phép hầu hết các hành vi lịch sử, mở rộng lịch sử
thực hành để yêu cầu làm chậm lại các hành vi nếu tùy chọn chỉnh sửa do người dùng đặt.

thẻ
Đường dẫn mặc định cho các tệp thẻ được để lại không xác định vì các triển khai có thể có
thẻ triển khai không tương ứng với những triển khai lịch sử. Mặc định thẻ
giá trị tùy chọn có lẽ ít nhất phải bao gồm tệp ./tags.

kỳ hạn
Triển khai lịch sử của exvi bỏ qua những thay đổi đối với kỳ hạn chỉnh sửa tùy chọn sau
thông tin đầu cuối ban đầu đã được tải. Điều này được POSIX.1‐2008 cho phép; Tuy nhiên,
triển khai được khuyến khích cho phép người dùng sửa đổi loại thiết bị đầu cuối của họ bất kỳ lúc nào
thời gian.

ngắn gọn
Trong lịch sử, ngắn gọn tùy chọn chỉnh sửa tùy chọn cung cấp một lỗi ngắn hơn, ít mô tả hơn
cho một số thông báo lỗi. Điều này được phép, nhưng không bắt buộc, bởi POSIX.1‐2008.
Trước đây, các lỗi chế độ hình ảnh phổ biến nhất (ví dụ: cố gắng di chuyển con trỏ qua
cuối dòng) không dẫn đến thông báo lỗi mà chỉ cần cảnh báo thiết bị đầu cuối.
Việc triển khai muốn cung cấp thông điệp cho người dùng mới bắt đầu được khuyến khích làm như vậy dựa trên
các chỉnh sửa tùy chọn dài dòng, và không ngắn gọn.

cửa sổ
Trong các triển khai lịch sử, mặc định cho cửa sổ tùy chọn chỉnh sửa dựa trên
tốc độ truyền như sau:

1. Nếu tốc độ truyền nhỏ hơn 1200, chỉnh sửa tùy chọn w300 đặt giá trị cửa sổ; vì
ví dụ, dòng:

định w300 = 12

sẽ đặt tùy chọn cửa sổ thành 12 nếu tốc độ truyền nhỏ hơn 1200.

2. Nếu tốc độ truyền bằng 1200, chỉnh sửa tùy chọn w1200 đặt giá trị cửa sổ.

3. Nếu tốc độ truyền lớn hơn 1200, chỉnh sửa tùy chọn w9600 đặt giá trị cửa sổ.

Sản phẩm w300, w1200w9600 các tùy chọn không xuất hiện trong POSIX.1‐2008 vì
sự phụ thuộc vào tốc độ truyền cụ thể.

Trong các triển khai trước đây, kích thước của cửa sổ được hiển thị bởi các lệnh khác nhau là
liên quan đến, nhưng không nhất thiết phải giống với, cửa sổ chỉnh sửa tùy chọn. Ví dụ, kích thước
của cửa sổ được thiết lập bởi ex lệnh trực quan 10, nhưng nó không thay đổi giá trị của
cửa sổ chỉnh sửa tùy chọn. Tuy nhiên, việc thay đổi giá trị của cửa sổ chỉnh sửa tùy chọn đã thay đổi
số dòng được hiển thị khi màn hình được sơn lại. POSIX.1‐2008 không
cho phép hành vi này vì lợi ích của tính nhất quán và đơn giản của đặc điểm kỹ thuật, và
yêu cầu tất cả các lệnh thay đổi số dòng được hiển thị phải thực hiện bằng cách
thiết lập giá trị của cửa sổ chỉnh sửa tùy chọn.

ký quỹ, wm
Trong lịch sử, ký quỹ tùy chọn không ảnh hưởng đến bản đồ chèn các ký tự cũng có
liên kết tínhS; Ví dụ :bản đồ K 5aABC DEF. Thật không may, có được sử dụng rộng rãi
bản đồ phụ thuộc vào hành vi này. Để có tính nhất quán và đơn giản về đặc điểm kỹ thuật,
POSIX.1‐2008 không cho phép hành vi này.

Trong lịch sử, ký quỹ được tính toán bằng cách sử dụng chiều rộng hiển thị cột của tất cả các ký tự
trên màn hình. Ví dụ, một triển khai sử dụng "^ Tôi" để đại diện cho nhân vật
khi tùy chọn chỉnh sửa đã được đặt, ở đâu '^''TÔI' mỗi người chiếm một cột duy nhất trên
màn hình, sẽ tính toán ký quỹ dựa trên giá trị là 2 cho mỗi . Các con số
tùy chọn chỉnh sửa tương tự cũng thay đổi độ dài hiệu dụng của dòng. POSIX.1‐2008
yêu cầu phù hợp với thực tiễn lịch sử.

Các phiên bản trước của tiêu chuẩn này được phép triển khai với các byte khác tám
bit, nhưng điều này đã được sửa đổi trong phiên bản này.

TƯƠNG LAI HƯỚNG DẪN


Không có.

Sử dụng exposix trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    Máy pha
    Máy pha
    Phaser là một công cụ mở nhanh, miễn phí và thú vị
    nguồn HTML5 trò chơi khung cung cấp
    Hiển thị WebGL và Canvas trên
    trình duyệt web trên máy tính để bàn và thiết bị di động. Trò chơi
    có thể được đồng ...
    Tải xuống Phaser
  • 2
    Động cơ VASSAL
    Động cơ VASSAL
    VASSAL là một công cụ trò chơi để tạo
    phiên bản điện tử của bảng truyền thống
    và các trò chơi bài. Nó cung cấp hỗ trợ cho
    kết xuất và tương tác mảnh trò chơi,
    và ...
    Tải xuống Công cụ VASSAL
  • 3
    OpenPDF - Ngã ba của iText
    OpenPDF - Ngã ba của iText
    OpenPDF là một thư viện Java để tạo
    và chỉnh sửa các tệp PDF bằng LGPL và
    Giấy phép nguồn mở MPL. OpenPDF là
    Mã nguồn mở LGPL/MPL kế thừa của iText,
    có ...
    Tải xuống OpenPDF - Một nhánh của iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Hệ thống tự động
    Phân tích khoa học địa lý - là một địa lý
    Phần mềm Hệ thống Thông tin (GIS) với
    khả năng to lớn cho dữ liệu địa lý
    chế biến và ana ...
    Tải xuống SAGA GIS
  • 5
    Hộp công cụ cho Java / JTOpen
    Hộp công cụ cho Java / JTOpen
    Hộp công cụ IBM dành cho Java/JTOpen là một
    thư viện các lớp Java hỗ trợ
    lập trình client/server và internet
    các mô hình cho một hệ thống chạy OS/400,
    i5/OS, hoặc...
    Tải xuống Hộp công cụ cho Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (hoặc D3 cho Tài liệu hướng dữ liệu)
    là một thư viện JavaScript cho phép bạn
    để tạo dữ liệu động, tương tác
    trực quan hóa trong trình duyệt web. Với D3
    bạn...
    Tải xuống D3.js
  • Khác »

Lệnh Linux

Ad