thanks Ben Fritz, good article, teach me a lot, but I still has some
question.

 function! ConditionalPairMap(open,  close)

   let line = getline('.')

   let col = col('.')

   if col < col('$') || stridx(line,  a:close,  col + 1) != -1

     return a:open

   else

     return a:open . a:close . repeat("\<left>",  len(a:close))

   endif

 endf



inoremap <expr> ( ConditionalPairMap('(',  ')')

inoremap <expr> { ConditionalPairMap('{',  '}')

inoremap <expr> [ ConditionalPairMap('[',  ']')

inoremap <expr> /* ConditionalPairMap('/*',  '*/')

inoremap <expr> /*<space> ConditionalPairMap('/*<space>',  '*/<space>')

inoremap <expr> ' ConditionalPairMap("'",  "'")

inoremap <expr> " ConditionalPairMap('\"',  '\"')

autocmd FileType javascript inoremap , ,<SPACE>

autocmd FileType javascript inoremap : <SPACE>:<SPACE>

1. not works if insert ( [ { in the center of a line, only works at the end
of the line,
2. Can I use inoremap in function too? I want add this in function
 inoremap <expr> ) strpart(getline('.'), col('.')-1, 1) == ")" ?
"\<Right>" : ")"

3, how can I get some API of strpart, get line, col, all of this internal
functions?
4, Where I can get the syntax of vim script, like string operation, ! #
symbols means

Thanks a lot


 Ben Fritz <fritzophre...@gmail.com>

>
>
> On Nov 11, 8:36 am, Jason <guil...@gmail.com> wrote:
> > I just need a very simple plugin, I want do it myself, when I press
> > {<enter> , it become
> >
> > below `I` means cursor
> >
> > {
> >    I
> >
> > }
> >
> > if I press ({<enter> it goes to
> >
> > ({
> >     I
> >
> > })
> >
> > |(   => (|)
> > |{   => {|}
> >
> > I don't want to know every thing about plugin development, but I want
> > to know the most useful things about write a plugins.
>
> Have a look here, it will get you started and/or walk you through
> creating such mappings:
>
> http://vim.wikia.com/wiki/Automatically_append_closing_characters
>
> --
> 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
>



-- 
Best regards,

Jason Green
桂林

-- 
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

Reply via email to