Stephen Riehm <[email protected]> wrote:

> Hi Dominique,
>
>> Sorry if I broke your mapping.  I'll see soon how else it can be fixed.
>
> that's OK - I have a patch and you responded before woke up, so it's all good 
> :-)
>
>> I just tried to map <C-"> and it does not work for me even when
>> vim is older than 7.4.1968.  Indeed, mapping <M-"> worked but
>> in gvim only, not in terminal.
>
> hmm... it seems I've been battling that all my life :-)
> Backstory:
> My problem is that all the normal and control characters are pre mapped, 
> apple's command key is also pre defined (try mapping <D-H> or <D-.> :-(
> So alt/meta is the only option for setting up a consistent "user interface".
> <M-?> where ? = (, ), [, ], ', ", < or > is a IMHO wonderful set of 
> bracketing macros, which is why losing <M-"> was so painful. It's the 
> keystroke that's important, not the character.
>
>> The memory issue should be the same for <C-"> or <M-">, since
>> it happened because " starts a comment, causing an invalid syntax
>> not handled well by vim.
>
> Hmmm... shouldn't the parser know that it's already parsing an <M-> token and 
> skip comments until the > ?
>
>> $ valgrind --num-callers=20 vim -u NONE -c 'echo "\<M-">' -c q 2> log
>
> I don't have valgrind

If you compile vim with gcc or clang, you can also see this bug
by adding -fsanitize=address to the compiler flags, recompile vim,
and then run vim normally.  It should crash without patch 7.4.1968
when doing:   vim -u NONE -c 'echo "\<M-">

> ... but running the vim part I can see that your test case does indeed throw 
> an error.
> What I don't completely understand is why I don't see this error from my 
> normal vimrc?
> Or is it only a problem when it's already in a comment? i.e.:
>
>         map <M-"> ...
>         " map <M-"> ...
>
> I tried this but it only barfs with your test line :-/
> BTW: the \ seems to be redundant.

In my example, \<M-"> is not in a comment, but inside a string
started by a double quotes.  VimL grammar is a bit strange as
double quote " is used for comments, but it can also be used
for delimiting strings or even other purposes like register @"
or <C-"> (etc).

I don't know yet how to fix the memory error while accepting
your mapping, but I'll spend time on it later.

Dominique

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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui