On 5/22/06, Yakov Lerner <[EMAIL PROTECTED]> wrote:
On 5/22/06, Eric Arnold <[EMAIL PROTECTED]> wrote:
> On 5/21/06, Yakov Lerner <[EMAIL PROTECTED]> wrote:
> > On 5/22/06, Eric Arnold <[EMAIL PROTECTED]> wrote:
> > > I've been trying to map "cd" if it's the first two characters on the
> > > :ex  line.  I've tried all the combinations I can think of.  On
> > > several of them, I seem to be getting errors as if <expr> is run in
> > > the sandbox (that dog won't hunt).  The only one that works at all is
> > > the first simple mapping, but that gets painful, of course, when you
> > > want to use "cd" in a search, etc.
> > >
> > > Anybody know any good tricks?
> > >
> > >
> > > silent! cunmap cd
> > >
> > > cnoremap <silent> cd call Cd_plus()<CR>
> > >
> > > "cnoremap <silent> cd echo getcmdpos()<CR>
> > > "cnoremap <silent> cd if getcmdpos() < 3 <bar> call Cd_plus() <bar>
> > > else <bar> call feedkeys('cd','n') <bar> call setcmdpos(1) <bar> end
> > > <CR>
> > > "cnoremap <silent> <expr> cd ( getcmdpos() == 1 ? Cd_plus() : 'cd' )
> > > "cnoremap <silent> <expr> cd Cd_plus()
> > > "abbr <silent> <expr> cd Cd_plus()
> > > "silent! unabbr cd
> >
> > The following works for me:
> >
> > cnoremap cd <c-R>=getcmdpos()==1?"MYCD ":'cd'<cr>
>
> This is nearly it.  I'm actually trying to start a script from the
> mapping.

Can you start a script from a
function in rhs ? Like this;

No.  This runs in the sandbox, and all sorts of things will fail in MyFunc().


cnoremap cd <c-R>=getcmdpos()==1?MyFunc():'cd'<cr>
func! MyFunc()
    ... start script here ...
    return ""
endfun

Yakov

Reply via email to