В документации Vim есть что сказать о :open
команде:
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.
Он не комментирует природу «симуляции» и почему это считается симуляцией, а не реальной командой с другим поведением. При запуске из режима ex (Q) он действительно ведет себя так, как описано.
Тем не менее, также есть другая команда открытия. При запуске из обычной командной строки или из ex-режима с другими аргументами это выглядит как синоним :edit
. При запуске из командного режима с помощью /pattern/
, он позиционирует курсор и, по- видимому, запускается :edit
(при этом положение курсора становится очевидным только в том случае, если: редактирование не выполняется.) Он также может быть запущен как :open /pattern/ file
, что позиционирует курсор и запускает:edit file
Мой вопрос: почему это не задокументировано? Есть ли отличия от того, :edit
что я не замечаю? Был ли :open
когда-то синоним для :edit
и только изменен позже в попытке на полпути соответствовать POSIX?