Or, if you want to make sure it's only after a colon (and not after every occurrence of "su"), look up getcmdpos() and only act if it's at the beginning of the command-line.

Hope this helps,

Salman

--

سلمان حلیم

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
For more options, visit https://groups.google.com/groups/opt_out.

Matteo Cavalleri

... what does :su do? it s the same as pressing CTRL-z or typing :sh ? -- -- You received this message from the vim_use maillist. Do not top-post! Type

The above assumes 'nocompatible' (otherwise, you can still use it, but
the long cnoreabbrev <expr> line must be typed all on one line with no
line continuation) and determines at run-time whether the "finer"
version of the mapping (with getcmdtype() and getcmdpos()) can be used
or not.

I intentionally use "version" rather than "v:version" because it is more
backward-compatible.

Best regards,
Tony.
--
Without ice cream life and fame are meaningless.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

... The POSIX spec has a bug: it says that :s means :substitute, which means anything starting with :s means :substitute, including :su. But then ... Relevant

Message 6 of 7
, Jun 25, 2013

0 Attachment

Christian Brabandt wrote:

> On Mon, June 24, 2013 23:54, Paul Maier wrote:
> > Hi,
> >
> > the original vi on Sun took :su as :suspend,
> > whereas vim takes :su as :substitute.
> >
> > I am very used to typing :su.
> >
> > Would it be possible for VIM 7.4 to add a new compatibility flag to
> > cpoptions
> > about the meaning of :su ?
> >
> > suggested compatible flag: :su = :suspend, :s = :substitute
> > without the flag: :su = :substitute
> >
>
> Looks like a bug to me. POSIX also requires :su to be used for
> :suspend (http://pubs.opengroup.org/onlinepubs/007908799/xcu/ex.html)
>
> Do we need a new cpo setting here, or should it be enough to
> patch vim to take :su as :suspend?

The POSIX spec has a bug: it says that :s means :substitute, which means
anything starting with :s means :substitute, including :su. But then
:suspend can be abbreviated to :su, that's a conflict.

Relevant quotes:

For each of the commands listed below, the command can be
entered as the abbreviation (those characters in the Synopsis
command word preceding the [), the full command (all characters
shown for the command word, omitting the [ and ]), or any subset
of the characters of the full command down to the abbreviation.
For example, the args command (shown as ar[gs] in the Synopsis)
can be entered as ar, arg or args.

... The compatibility mode tries to emulate the behaviour of original Sun s vi, even if it is a bug there. Vim does this at several places. With a new cpo

Message 7 of 7
, Jun 26, 2013

0 Attachment

Bram wrote:

> The POSIX spec has a bug: it says that :s means :substitute, which means
> anything starting with :s means :substitute, including :su. But then
> :suspend can be abbreviated to :su, that's a conflict.

The compatibility mode tries to emulate the behaviour of original Sun's vi,
even if it is a bug there. Vim does this at several places.

With a new cpo flag, the user would have a choice to configure vim to personal
habits. (I have been using original Sun vi for 10 years, typing :su, not
considering that I am using a bug. Now I am used to it.)