Tài liệu của Vim có điều này để nói về :open
lệnh:
This command is in Vi, but Vim only simulates it:
*:o* *:op* *:open*
:[range]o[pen] Works like |:visual|: end Ex mode.
{Vi: start editing in open mode}
:[range]o[pen] /pattern/ As above, additionally move the cursor to the
column where "pattern" matches in the cursor
line.
Vim does not support open mode, since it's not really useful. For those
situations where ":open" would start open mode Vim will leave Ex mode, which
allows executing the same commands, but updates the whole screen instead of
only one line.
Nó không bình luận về bản chất của "mô phỏng", và tại sao đây được coi là một mô phỏng chứ không phải là một lệnh thực sự với hành vi khác nhau. Khi chạy từ chế độ ex (Q), nó thực sự hoạt động như mô tả.
Tuy nhiên, dường như cũng có một lệnh mở khác. Khi chạy từ dòng lệnh thông thường hoặc từ chế độ ex với các đối số khác nhau, nó dường như là một từ đồng nghĩa với :edit
. Khi chạy từ chế độ lệnh với a /pattern/
, nó định vị con trỏ và dường như chạy :edit
(với vị trí con trỏ chỉ hiển nhiên nếu: chỉnh sửa không thành công.) Nó cũng có thể được chạy như :open /pattern/ file
, định vị con trỏ và chạy:edit file
Câu hỏi của tôi là: Tại sao điều này không được ghi nhận? Có sự khác biệt nào :edit
mà tôi không nhận thấy? Đã :open
từng là một từ đồng nghĩa cho :edit
và chỉ thay đổi sau đó trong một nỗ lực để nửa chừng tuân thủ POSIX?