On 04-Jan-13 12:58:15 +0900, Mohammed Chelouti wrote:

> Hello
> 
> I have found an unexpected behaviour in the normal command and I am not sure
> if it is a bug or just not explicitly mentioned in the help.
> 
> Consider the following file (# depicts the cursor):
> 
> 1 foo
> 2 #bar
> 3 zab
> 
> Now enter :norm! ddkP, the file should now look like this.
> 
> 1 #bar
> 2 foo
> 3 zab
> 
> So far so good, execute the same command once more. Result:
> 
> 1 #foo
> 2 zab
> 
> The first line was removed but not inserted; this doesn't happen when
> executing ddkP manually.

When you type this manually, you're effectively executing this:

    execute 'norm! dd' | execute 'norm! k' | execute 'norm! P'

And this indeed doesn't stop.

> The help file says that :normal stops on errors but is it an error
> when the cursor just can't move one line up?

Yes it is. The beep that is issued is a clear indication of the error.

> I don't know what behaviour was intended, but I think it should either
> be considered a bug or there should be an explicit hint in the help.

Yes, it is intended, and it's very helpful to abort (recursive) macros. And the
reference in the help is exactly what you've quoted. Sorry that some Vim
peculiarities are so hard to discover, but I guess that's the price one has to
pay for such a powerful editor.

-- regards, ingo

-- 
You received this message from the "vim_dev" 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

Raspunde prin e-mail lui