The error is:
```
controller in excmd: Error: Type error for parameter
details (Unexpected property "cookieStoreId") for
contextualIdentities.update.
```
This is because container.update invokes `fromString` on the user's
input, which produces an object with `cookieStoreId` set. If you look
at `fromString` you'll note that it has to some dirty type coercion to
make its return type work out.
This basic (though a bit complex) Vim argument should be supported by
all variants.
Additionally, drop the superfluous %f argument in the tui_editors Vim
definitions; the gui candidates (mvim, gvim) didn't have this, and it's
not necessary; appending the filename (the default) works just fine.
In order to apply the cursor positioning for the Vim editor as
documented for 'editorcmd', define a constant to avoid duplicating the
(rather complex) argument for all of the mvim / nvim / vim / gvim
variants. The argument needs to be quoted (at least on Unix, and there
single quotes have to be used to avoid history expansion (e.g. in Bash)
triggered by the "!" character), so another platform-specific constant
(arg_quote) is needed (as Windows only supports double quotes).
Problems with the original:
- Addressing the column with "l" assumes that "G" positions the cursor on the first column. But the default behavior already skips leading indent (so is wrong when there's leading whitespace), and with ":set nostartofline", the current column actually is kept (which completely and randomly messes up the column addressing).
- ":normal" without ! is affected by mappings; users may have tweaked the "G" and "l" (or in the worst case completely changed the behavior, e.g. for use with a different keyboard layout).
This change makes the mapping immune to mappings (with ":normal!") and uses the "|" command (which uses virtual column addressing independent of the current column or "G" behavior) instead of "c".
Additionally, "zv" makes the current line visible should it be obscured by folding. (Vim may detect a filetype and automatically enable folding.)
Instead of -c <cmd>, the shorter +<cmd> form is used. This is just a cosmetic change. Using just a single argument and avoiding any whitespace within it may prevent command-line argument parsing issues.