created February 12, 2006 · complexity basic · author Matt Zyzik · version 5.7
Xterm, by default, sets eightBitInput to true, meaning that the eighth bit is set for meta characters (combinations with the Alt key, for instance). Not all terminals have this feature enabled by default, and therefore work differently (they send an Esc before the character key).
So for the xterm, with enables the eight bit, you can just do something like:
map <m-a> ggVG
However, with a terminal that is in 7 bit mode, you have to do this:
set <m-a> = ^[a map <m-a> ggVG " the ^[ is an Esc char that comes before the 'a'
My tip is to just set all terminals to work in 8 bit mode. Here are two examples:
Eterm -8 rxvt --meta8
Also, these are the settings I use in my /etc/inputrc:
set meta-flag on set input-meta on set convert-meta on set output-meta on
These are so that alt keys like <m-b>, <m-f>, <m-d> will work well in shell.
The only version that works for me (Vim 7.1 on Ubuntu 8.04 x86, connected to by Putty 0.60 on Windows XP 32bit):
Line in .vimrc to map for example "Alt-RightArrowKey" to "switch to next open file":
:map ^[<Right> :hide bn<CR>
Crucial: to get the ^[<Right> press in insert mode Control-V then Alt-x, remove the x, insert the seven Characters "<Right>".
See :help key-notation for more key special names like "<Right>".
Using urxvt (rxvt-unicode) with --meta8 the alt key combinations gave cryptic characters (mostly with accents, like ì) as output instead of the Alt key mapping. Solution:
I guess the "set-8-bit" thing originates from the non-unicode version and only works for latin1. Input of special chars works as before.