In accordance with terminal standards, my terminal sends modified
Unicode that doesn't have any other representation (such as
Ctrl-Shift-P) using CSI u encoding; for example

  <C-S-P>  ==   CSI 80;5 u

Unfortunately vim doesn't understand this, getting as far as the Escape
part of the CSI, treating it as

  Esc [ 80 ; 5 u

causing vim to leave insert mode, start a [ movement that's then
aborted, then undo the previous 5 changes. Not helpful.

Currently I have something of a bit of a hack in my .vimrc to handle a
few of the more common ones by programatically generating a large list
of map/imap commands; for example, the handler for Space:

   <Esc>[32;8u   <C-S- >
   <Esc>[32;7u   <C- >
   <Esc>[32;6u   <C-S-Space>
   <Esc>[32;5u   <C-Space>
   <Esc>[32;4u   <S- >
   <Esc>[32;3u    
   <Esc>[32;2u   <S-Space>

However, I believe we can all agree this is unsustainable, as I don't
want to have to store a map and an imap command 7 times for each of the
~60-odd Unicode keys I could type.

Instead does anyone have a better idea here?

-- 
Paul "LeoNerd" Evans

[email protected]
ICQ# 4135350       |  Registered Linux# 179460
http://www.leonerd.org.uk/

Attachment: signature.asc
Description: PGP signature

Raspunde prin e-mail lui