La documentazione di Vim ha questo da dire sul :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.
Non commenta la natura della "simulazione" e il motivo per cui questa è considerata una simulazione piuttosto che un comando reale con un comportamento diverso. Quando eseguito dalla modalità ex (Q), si comporta davvero come descritto.
Tuttavia, sembra che ci sia anche un diverso comando aperto. Se eseguito dalla normale riga di comando o dalla modalità ex con argomenti diversi, sembra essere sinonimo di :edit
. Quando viene eseguito dalla modalità di comando con a /pattern/
, posiziona il cursore e apparentemente corre :edit
(con la posizione del cursore evidente solo se: la modifica fallisce). Può anche essere eseguita come :open /pattern/ file
, che posiziona il cursore e si avvia:edit file
La mia domanda è: perché questo non è documentato? Ci sono differenze rispetto a :edit
quelle che non noto? Una :open
volta è stato sinonimo di :edit
e cambiato solo in seguito nel tentativo di rispettare a metà strada POSIX?