From: "A.J.Mechelynck" <[EMAIL PROTECTED]>
Subject: Re: Mapping of keysequences...
Date: Sun, 01 Oct 2006 18:40:47 +0200
> Meino Christian Cramer wrote:
> > From: Mikolaj Machowski <[EMAIL PROTECTED]>
> > Subject: Re: Mapping of keysequences...
> > Date: Sun, 1 Oct 2006 15:09:56 +0200
> >
> >> Dnia niedziela, 1 października 2006 14:54, Meino Christian Cramer napisał:
> >>> Hi,
> >>>
> >>> is it possible to map the sequence of
> >>>
> >>> <C-C><C-F>b
> >>>
> >>> to anything (and how?)?
> >>>
> >>> I tried as a first brute-force experiment
> >>>
> >>> noremap <C-C><C-F>b echo "works"
> >> If you want to print it in the buffer it should be::
> >>
> >> noremap <C-C><C-F>b iecho "works"
> >>
> >> If you want to echo it in command line::
> >>
> >> noremap <C-C><C-F>b :echo "works"
> >>
> >> Normal mode mappings begin in Normal mode, not Insert or Command-Line.
> >>
> >> m.
> >>
> >
> > Hmmmppff....I got a problem here...
> >
> > What I want is to insert the string "{\bf }" (TeX!) in a buffer. It
> > should work in insert mode. I want to press <C-C><C-F>b in insert mode
> > and it should print "{\bf }" at the place where currently the cursor
> > is.
> >
> > I did
> >
> > inoremap <C-C><C-F>b iecho "{\bf }"
> >
> > . And guess what happens? It prints "iecho {\bf }" into the buffer!
> > When using 'noremap' instead of 'inoremap' nothing happens.
> >
> > :he iecho
> >
> > gives me simply nothing. Is there any needle in the haystack I can
> > search for?
> >
> > Keep hacking!
> > mcc
> >
> >
>
> If you are already in Insert mode, the right-hand side of the mapping is used
> as if you had typed it. To insert left-brace backslash bee eff space
> right-brace, use
>
> :inoremap <C-C><C-F>b {\bf }
>
> To do the same from Normal mode, use
>
> :noremap <C-D><C-F>b i{\bf }<Esc>
>
> with i to enter Insert mode and <Esc> to leave it.
>
>
> Best regards,
> Tony.
>
Hi Tony !
nice to read you again! And thank you very much for your
help,help,help... :) <- BIG smiley!
Slowly and surely I get my TeX macro working...
What I have now is the following:
inoremap <C-C><C-F>b {\bf #}<ESC>?#<CR>c/}<CR>
inoremap <C-C><C-F>i {\it #}<ESC>?#<CR>c/}<CR>
inoremap <C-C><C-F>s {\sl #}<ESC>?#<CR>c/}<CR>
which "works". A last wish I would have is: After 'c'hanging the '#'
to what I really want to typeset I will press <ESC> to leave
'c'hanging and insert mode. But my cursor still is inside of the {}....
Is it possible to let the macros recognize the pressing of '<ESC>'
and then jump behind the '}' and may be entering 'i'nsert mode again?
Or may be I need a completly different implementation of those macros
for that?
I often feel, that I am not thinking vim-y enough. ;o)
Thanks a lot for all your help!
Keep hacking!
mcc