2020-12-18 10:32:34 +01:00
|
|
|
|
" See https://vim.fandom.com/wiki/Mapping_fast_keycodes_in_terminal_Vim
|
|
|
|
|
" See termcap-options for mapped key info
|
|
|
|
|
" Some may not mapped correctly mapped for F1 to F4 (See vt100-function-keys )
|
|
|
|
|
" To set them, you can have a look at https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-_Tutorial_(Part_2)
|
|
|
|
|
" :set <S-F1>=<press Ctrl-V> <press S-F1><press esc>
|
|
|
|
|
" Those are the key for gnome-terminal with zsh on archlinux
|
|
|
|
|
if &term =~ "xterm."
|
|
|
|
|
set <S-F1>=[1;2P
|
|
|
|
|
set <S-F2>=[1;2Q
|
|
|
|
|
set <S-F3>=[1;2R
|
|
|
|
|
set <S-F4>=[1;2S
|
|
|
|
|
endif
|
|
|
|
|
"you could also direclty map them
|
|
|
|
|
" map <press ctrl-V><press your key map> :some vimcmds <press Ctrl-V><press
|
|
|
|
|
" enter>
|
|
|
|
|
" you can check the result with :map <press ctrl-V><press your key map>
|
2020-12-18 11:44:16 +01:00
|
|
|
|
|
|
|
|
|
" MapFastKeycode: helper for fast keycode mappings
|
|
|
|
|
" makes use of unused vim keycodes <[S-]F15> to <[S-]F37>
|
|
|
|
|
function! <SID>MapFastKeycode(key, keycode)
|
|
|
|
|
if s:fast_i == 46
|
|
|
|
|
echohl WarningMsg
|
|
|
|
|
echomsg "Unable to map ".a:key.": out of spare keycodes"
|
|
|
|
|
echohl None
|
|
|
|
|
return
|
|
|
|
|
endif
|
|
|
|
|
let vkeycode = '<'.(s:fast_i/23==0 ? '' : 'S-').'F'.(15+s:fast_i%23).'>'
|
|
|
|
|
exec 'set '.vkeycode.'='.a:keycode
|
|
|
|
|
exec 'map '.vkeycode.' '.a:key
|
|
|
|
|
let s:fast_i += 1
|
|
|
|
|
endfunction
|
|
|
|
|
let s:fast_i = 0
|
|
|
|
|
|
|
|
|
|
call <SID>MapFastKeycode('<C-F1>', "[1;5P")
|
|
|
|
|
call <SID>MapFastKeycode('<C-F2>', "[1;5Q")
|
|
|
|
|
call <SID>MapFastKeycode('<C-F3>', "[1;5R")
|
|
|
|
|
call <SID>MapFastKeycode('<C-F4>', "[1;5S")
|