A documentação do Vim tem a dizer sobre o :open
comando:
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ão comenta a natureza da "simulação" e por que isso é considerado uma simulação, e não um comando real com comportamento diferente. Quando executado no modo ex (Q), ele realmente se comporta como descrito.
No entanto, também parece haver um comando aberto diferente. Quando executado a partir da linha de comando normal ou do modo ex com argumentos diferentes, parece ser um sinônimo :edit
. Quando executado a partir do modo de comando com a /pattern/
, ele posiciona o cursor e, aparentemente, é executado :edit
(com a posição do cursor sendo evidente apenas se: a edição falhar.) Também pode ser executado como :open /pattern/ file
, que posiciona o cursor e é executado:edit file
Minha pergunta é: Por que isso não está documentado? Há alguma diferença :edit
disso que eu não estou percebendo? Era :open
uma vez um sinônimo :edit
e somente foi alterado posteriormente, na tentativa de cumprir parcialmente com o POSIX?