OK, here's (after some experimenting) what I think is happening. All the
following assume Insert mode
Special case 1: <Ctrl-K> <Space> <key1> or <Ctrl-K> <key1> <Space>
where <key1> corresponds to a single character in the range [0x00-0x7F]:
enter that character plus 0x80. This is normally the same as Alt-<key1>.
Special case 2: <Ctrl-K> <key1>
where <key1> does _not_ represent a character: enter the <>
representation of of <key1>. This is not a digraph.
General case: <Ctrl-K> <key1> <key2>
If there is a defined digraph for <key1> <key2>, enter it into the
buffer. Otherwise, if there is a defined digraph for <key2> <key1>,
enter that. Otherwise, enter <key2> (and discard <key1>).
When you hit <Ctrl-K> <Enter> <Enter> you are not in Special case 2,
because <Enter> does represent a character, namely the carriage-return
or Ctrl-M character 0x0D. So you fall back onto the third branch of the
general case, and you get a ^M (a literal carriage-return), exactly as
if you had hit Ctrl-V followed by Enter.
When you hit <Ctrl-K> <Shift-Enter>, gvim knows that Shift-Enter is not
the same as Enter, so it does not regard it as the Ctrl-M character but
as "not a character" and you get Special case 2. (Console Vim does not
always notice the difference between Enter and Shift-Enter -- on my
Linux system it doesn't, neither in KDE konsole not in the Linux
raw-text console.)
Best regards,
Tony.
--
You will think of something funnier than this to add to the fortunes.
Thanks for fixing it (by moving the new stuff to a more appropriate place). I had
that on my to-do list. I also was/am perplexed.
John