Wednesday, November 4, 2015

Re: problem in vim snippets

On Wednesday, November 4, 2015 at 8:16:55 AM UTC-6, Rudra Banerjee wrote:
> Update:
> I found the source of error, but not the solution. This is not in the function or template.
> It is actually in my map to call the function.
> in insertmode, the code is called using:
> inoremap `prg <C-R>=Prog("prg")<cr><CR><Esc>gg=G<C-j>
>
> and this is inserting the 0, I dont know why.
> If I do,
>
> nnoremap `prg :call Prog("prg")<cr><CR><Esc>gg=G<C-j>
>
> everything is fine.
> Kindly help.

By using <C-R>= in insert mode, you are telling Vim, "insert the result of the expression I give you, into the buffer".

Your function has no return value, so I assume the default return value is zero. Thus Vim inserts zero.

Try making your function return an empty string (""), or stick with methods that don't use the expression register (an expression mapping, perhaps, or just move the <Esc> forward to the beginning of the mapping and use the same method as the normal mode mapping).

--
--
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@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: