https://github.com/powerman/vim-plugin-fixtermkeys
Fix terminal Ctrl Alt Shift modifiers for keys like Tab CR Space BS cursor and others
https://github.com/powerman/vim-plugin-fixtermkeys
Last synced: 11 months ago
JSON representation
Fix terminal Ctrl Alt Shift modifiers for keys like Tab CR Space BS cursor and others
- Host: GitHub
- URL: https://github.com/powerman/vim-plugin-fixtermkeys
- Owner: powerman
- License: mit
- Created: 2020-02-16T18:15:48.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-20T22:36:59.000Z (almost 6 years ago)
- Last Synced: 2025-02-15T05:52:37.317Z (11 months ago)
- Language: Vim script
- Homepage:
- Size: 10.7 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fixtermkeys
Fix terminal Ctrl Alt Shift modifiers for keys like Tab CR Space BS cursor and others.
Based on http://www.leonerd.org.uk/hacks/vim/fixtermkeys.html.
## Terminal setup
Even without extra terminal setup this plugin will improve detection of
some keys, but to get all keys to work chances are you'll have to
configure your terminal.
Example for urxvt (rxvt-unicode) - add this to `~/.Xresources` (and then
either restart Xorg or run `xrdb ~/.Xresources` and start new `urxvt`):
```
/*
* Keyboard:
*/
!// All key names: /usr/include/X11/keysymdef.h
!// Found at http://vim.wikia.com/wiki/Get_Alt_key_to_work_in_terminal.
!// (https://github.com/sunaku/home/blob/master/.Xdefaults.d/URxvt.xrdb)
!// Emulate XTerm for proper recognition of key combinations in Vim.
URxvt.keysym.S-Up : \033[1;2A
URxvt.keysym.M-Up : \033[1;3A
URxvt.keysym.M-S-Up : \033[1;4A
URxvt.keysym.C-Up : \033[1;5A
URxvt.keysym.C-S-Up : \033[1;6A
URxvt.keysym.M-C-Up : \033[1;7A
URxvt.keysym.M-C-S-Up : \033[1;8A
URxvt.keysym.S-Down : \033[1;2B
URxvt.keysym.M-Down : \033[1;3B
URxvt.keysym.M-S-Down : \033[1;4B
URxvt.keysym.C-Down : \033[1;5B
URxvt.keysym.C-S-Down : \033[1;6B
URxvt.keysym.M-C-Down : \033[1;7B
URxvt.keysym.M-C-S-Down : \033[1;8B
URxvt.keysym.S-Right : \033[1;2C
URxvt.keysym.M-Right : \033[1;3C
URxvt.keysym.M-S-Right : \033[1;4C
URxvt.keysym.C-Right : \033[1;5C
URxvt.keysym.C-S-Right : \033[1;6C
URxvt.keysym.M-C-Right : \033[1;7C
URxvt.keysym.M-C-S-Right : \033[1;8C
URxvt.keysym.S-Left : \033[1;2D
URxvt.keysym.M-Left : \033[1;3D
URxvt.keysym.M-S-Left : \033[1;4D
URxvt.keysym.C-Left : \033[1;5D
URxvt.keysym.C-S-Left : \033[1;6D
URxvt.keysym.M-C-Left : \033[1;7D
URxvt.keysym.M-C-S-Left : \033[1;8D
! URxvt.keysym.S-Insert : paste
URxvt.keysym.M-Insert : \033[2;3~
URxvt.keysym.M-S-Insert : \033[2;4~
URxvt.keysym.C-Insert : \033[2;5~
URxvt.keysym.C-S-Insert : \033[2;6~
URxvt.keysym.M-C-Insert : \033[2;7~
URxvt.keysym.M-C-S-Insert : \033[2;8~
URxvt.keysym.S-Delete : \033[3;2~
URxvt.keysym.M-Delete : \033[3;3~
URxvt.keysym.M-S-Delete : \033[3;4~
URxvt.keysym.C-Delete : \033[3;5~
URxvt.keysym.C-S-Delete : \033[3;6~
URxvt.keysym.M-C-Delete : \033[3;7~
URxvt.keysym.M-C-S-Delete : \033[3;8~
URxvt.keysym.S-Home : \033[1;2H
URxvt.keysym.M-Home : \033[1;3H
URxvt.keysym.M-S-Home : \033[1;4H
URxvt.keysym.C-Home : \033[1;5H
URxvt.keysym.C-S-Home : \033[1;6H
URxvt.keysym.M-C-Home : \033[1;7H
URxvt.keysym.M-C-S-Home : \033[1;8H
URxvt.keysym.S-End : \033[1;2F
URxvt.keysym.M-End : \033[1;3F
URxvt.keysym.M-S-End : \033[1;4F
URxvt.keysym.C-End : \033[1;5F
URxvt.keysym.C-S-End : \033[1;6F
URxvt.keysym.M-C-End : \033[1;7F
URxvt.keysym.M-C-S-End : \033[1;8F
! URxvt.keysym.S-Page_Up : captured by terminal for scrolling
URxvt.keysym.M-Page_Up : \033[5;3~
URxvt.keysym.M-S-Page_Up : \033[5;4~
URxvt.keysym.C-Page_Up : \033[5;5~
URxvt.keysym.C-S-Page_Up : \033[5;6~
URxvt.keysym.M-C-Page_Up : \033[5;7~
URxvt.keysym.M-C-S-Page_Up : \033[5;8~
! URxvt.keysym.S-Page_Down : captured by terminal for scrolling
URxvt.keysym.M-Page_Down : \033[6;3~
URxvt.keysym.M-S-Page_Down : \033[6;4~
URxvt.keysym.C-Page_Down : \033[6;5~
URxvt.keysym.C-S-Page_Down : \033[6;6~
URxvt.keysym.M-C-Page_Down : \033[6;7~
URxvt.keysym.M-C-S-Page_Down : \033[6;8~
!// See http://www.leonerd.org.uk/hacks/fixterms/
!// S-Tab has own code: \033[Z
! URxvt.keysym.S-Tab : \033[9;2u
URxvt.keysym.M-Tab : \033[9;3u
URxvt.keysym.M-S-Tab : \033[9;4u
URxvt.keysym.C-Tab : \033[9;5u
URxvt.keysym.C-S-Tab : \033[9;6u
URxvt.keysym.M-C-Tab : \033[9;7u
URxvt.keysym.M-C-S-Tab : \033[9;8u
URxvt.keysym.S-Return : \033[13;2u
URxvt.keysym.M-Return : \033[13;3u
URxvt.keysym.M-S-Return : \033[13;4u
URxvt.keysym.C-Return : \033[13;5u
URxvt.keysym.C-S-Return : \033[13;6u
URxvt.keysym.M-C-Return : \033[13;7u
URxvt.keysym.M-C-S-Return : \033[13;8u
URxvt.keysym.S-Escape : \033[27;2u
URxvt.keysym.M-Escape : \033[27;3u
URxvt.keysym.M-S-Escape : \033[27;4u
URxvt.keysym.C-Escape : \033[27;5u
URxvt.keysym.C-S-Escape : \033[27;6u
URxvt.keysym.M-C-Escape : \033[27;7u
URxvt.keysym.M-C-S-Escape : \033[27;8u
!// S-space is often pressed occasionally while typing.
! URxvt.keysym.S-space : \033[32;2u
URxvt.keysym.M-space : \033[32;3u
URxvt.keysym.M-S-space : \033[32;4u
!// C-space has own code: ^@ (Nul)
! URxvt.keysym.C-space : \033[32;5u
URxvt.keysym.C-S-space : \033[32;6u
URxvt.keysym.M-C-space : \033[32;7u
URxvt.keysym.M-C-S-space : \033[32;8u
URxvt.keysym.S-BackSpace : \033[127;2u
URxvt.keysym.M-BackSpace : \033[127;3u
URxvt.keysym.M-S-BackSpace : \033[127;4u
!// C-BackSpace has own code: ^H
! URxvt.keysym.C-BackSpace : \033[127;5u
URxvt.keysym.C-S-BackSpace : \033[127;6u
URxvt.keysym.M-C-BackSpace : \033[127;7u
URxvt.keysym.M-C-S-BackSpace : \033[127;8u
URxvt.keysym.C-0 : \033[48;5u
URxvt.keysym.C-parenright : \033[48;6u
URxvt.keysym.M-C-0 : \033[48;7u
URxvt.keysym.M-C-parenright : \033[48;8u
URxvt.keysym.C-1 : \033[49;5u
URxvt.keysym.C-exclam : \033[49;6u
URxvt.keysym.M-C-1 : \033[49;7u
URxvt.keysym.M-C-exclam : \033[49;8u
URxvt.keysym.C-2 : \033[50;5u
URxvt.keysym.C-at : \033[50;6u
URxvt.keysym.M-C-2 : \033[50;7u
URxvt.keysym.M-C-at : \033[50;8u
URxvt.keysym.C-3 : \033[51;5u
URxvt.keysym.C-numbersign : \033[51;6u
URxvt.keysym.M-C-3 : \033[51;7u
URxvt.keysym.M-C-numbersign : \033[51;8u
URxvt.keysym.C-4 : \033[52;5u
URxvt.keysym.C-dollar : \033[52;6u
URxvt.keysym.M-C-4 : \033[52;7u
URxvt.keysym.M-C-dollar : \033[52;8u
URxvt.keysym.C-5 : \033[53;5u
URxvt.keysym.C-percent : \033[53;6u
URxvt.keysym.M-C-5 : \033[53;7u
URxvt.keysym.M-C-percent : \033[53;8u
URxvt.keysym.C-6 : \033[54;5u
URxvt.keysym.C-asciicircum : \033[54;6u
URxvt.keysym.M-C-6 : \033[54;7u
URxvt.keysym.M-C-asciicircum : \033[54;8u
URxvt.keysym.C-7 : \033[55;5u
URxvt.keysym.C-ampersand : \033[55;6u
URxvt.keysym.M-C-7 : \033[55;7u
URxvt.keysym.M-C-ampersand : \033[55;8u
URxvt.keysym.C-8 : \033[56;5u
URxvt.keysym.C-asterisk : \033[56;6u
URxvt.keysym.M-C-8 : \033[56;7u
URxvt.keysym.M-C-asterisk : \033[56;8u
URxvt.keysym.C-9 : \033[57;5u
URxvt.keysym.C-parenleft : \033[57;6u
URxvt.keysym.M-C-9 : \033[57;7u
URxvt.keysym.M-C-parenleft : \033[57;8u
URxvt.keysym.C-minus : \033[45;5u
URxvt.keysym.C-underscore : \033[45;6u
URxvt.keysym.M-C-minus : \033[45;7u
URxvt.keysym.M-C-underscore : \033[45;8u
URxvt.keysym.C-equal : \033[61;5u
URxvt.keysym.C-plus : \033[61;6u
URxvt.keysym.M-C-equal : \033[61;7u
URxvt.keysym.M-C-plus : \033[61;8u
URxvt.keysym.C-comma : \033[44;5u
URxvt.keysym.C-less : \033[44;6u
URxvt.keysym.M-C-comma : \033[44;7u
URxvt.keysym.M-C-less : \033[44;8u
URxvt.keysym.C-period : \033[46;5u
URxvt.keysym.C-greater : \033[46;6u
URxvt.keysym.M-C-period : \033[46;7u
URxvt.keysym.M-C-greater : \033[46;8u
```