Loading ...
Sorry, an error occurred while loading the content.
 

Re: inoremap doesn't work!

Expand Messages
  • zhang listar
    2010/12/1 Ben Fritz ... I am sure that I have added the content to my vimrc. Now, the character {, [ works fine. But when I type (,
    Message 1 of 4 , Dec 1, 2010
      2010/12/1 Ben Fritz <fritzophrenic@...>


      On Nov 30, 5:47 am, zhang listar <listarmings...@...> wrote:
      > :inoremap ( ()<ESC>i
      > :inoremap ) <c-r>=ClosePair(')')<CR>
      > :inoremap { {}<ESC>i
      > :inoremap } <c-r>=ClosePair('}')<CR>
      > :inoremap [ []<ESC>i
      > :inoremap ] <c-r>=ClosePair(']')<CR>
      > :inoremap < <><ESC>i
      > :inoremap > <c-r>=ClosePair('>')<CR>
      >
      > function ClosePair(char)
      > if getline('.')[col('.') - 1] == a:char
      > return "\<Right>"
      > else
      > return a:char
      > endif
      > endf
      >
      > I have added the lines above to my vimrc, but vim does't automatically
      > complete bracket,
      > What's wrong with my vim?
      > The vimrc is as follows:
      >
      I don't see the content above in your .vimrc you posted. Are you sure
      you added it?
      On a related note, I like using <Left> instead of <Esc>i in the
      mappings I have that do similar things. Fewer side effects.
      See our tip on the subject:
      http://vim.wikia.com/wiki/Automatically_append_closing_characters


      I am sure that I have added the content to my vimrc. Now, the character {, [ works fine.
      But when I type (, vim can't automatically append ) for me. Instead, the plugin acp or neocomplcache(I am not sure which one)
      take effect, and pops up a menu to choose the item.
      I doubt that some plugin of vim has affect inoremap of ( .

      --
      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
    • Benjamin R. Haskell
      ... It appeared in the other (double-) post to which I replied. Odd. ... I agree with this advice. ... If when you type ( some other plugin takes effect,
      Message 2 of 4 , Dec 2, 2010
        On Thu, 2 Dec 2010, zhang listar wrote:

        > 2010/12/1 Ben Fritz
        >>
        >> On Nov 30, 5:47 am, zhang listar wrote:
        >>> :inoremap ( ()<ESC>i
        >>> :inoremap ) <c-r>=ClosePair(')')<CR>
        >>> :inoremap { {}<ESC>i
        >>> :inoremap } <c-r>=ClosePair('}')<CR>
        >>> :inoremap [ []<ESC>i
        >>> :inoremap ] <c-r>=ClosePair(']')<CR>
        >>> :inoremap < <><ESC>i
        >>> :inoremap > <c-r>=ClosePair('>')<CR>
        >>>
        >>> function ClosePair(char)
        >>> if getline('.')[col('.') - 1] == a:char
        >>> return "\<Right>"
        >>> else
        >>> return a:char
        >>> endif
        >>> endf
        >>>
        >>> I have added the lines above to my vimrc, but vim does't
        >>> automatically complete bracket,
        >>> What's wrong with my vim?
        >>> The vimrc is as follows:
        >>>
        >> I don't see the content above in your .vimrc you posted. Are you sure
        >> you added it?

        It appeared in the other (double-) post to which I replied. Odd.


        >> On a related note, I like using <Left> instead of <Esc>i in the
        >> mappings I have that do similar things. Fewer side effects.

        I agree with this advice.


        >> See our tip on the subject:
        >> http://vim.wikia.com/wiki/Automatically_append_closing_characters
        >> <http://www.vim.org/maillist.php>
        >>
        >
        > I am sure that I have added the content to my vimrc. Now, the
        > character {, [ works fine.
        > But when I type (, vim can't automatically append ) for me. Instead,
        > the plugin acp or neocomplcache(I am not sure which one) take effect,
        > and pops up a menu to choose the item. I doubt that some plugin of
        > vim has affect inoremap of ( .

        If when you type '(' some other plugin takes effect, why wouldn't you
        think it affected the inoremap? Plugins use the same mechanisms you're
        using (:inoremap, etc.). That's probably what's happening.

        First, try:

        :imap (
        :map (

        To see if there are any mappings defined for '('. (My guess is that
        there's at least one.)

        Then, try running Vim with the --noplugin flag, and see if any are still
        there. Or even if not, just to see if that clears up the problem.

        If one of those plugins defines a mapping, there's certainly a way to disable
        it. Depends on how the plugin sets it up, though, what the best way
        will be. (modifying the plugin directly, moving your mappings to an
        'after' file [see: :help after-directory], moving your mappings to an
        autocmd.)

        --
        Best,
        Ben

        --
        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
      Your message has been successfully submitted and would be delivered to recipients shortly.