Mercurial > vim
annotate src/testdir/keycode_check.vim @ 31105:46d1a434784b v9.0.0887
patch 9.0.0887: cannot easily try out what codes various keys produce
Commit: https://github.com/vim/vim/commit/a44c7811ff1c5519ac9acd6a34c58c98366f5c5f
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Nov 15 22:59:07 2022 +0000
patch 9.0.0887: cannot easily try out what codes various keys produce
Problem: Cannot easily try out what codes various keys produce.
Solution: Add a script to gather key code information, with an initial list
of codes to compare with.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 16 Nov 2022 00:00:04 +0100 |
parents | |
children | 17e171cf2cca |
rev | line source |
---|---|
31105
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1 vim9script |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 # Script to get various codes that keys send, depending on the protocol used. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
4 # |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 # Usage: vim -u keycode_check.vim |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
6 # |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
7 # Author: Bram Moolenaar |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
8 # Last Update: 2022 Nov 15 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
9 # |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 # The codes are stored in the file "keycode_check.json", so that you can |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 # compare the results of various terminals. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
12 # |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
13 # You can select what protocol to enable: |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 # - None |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 # - modifyOtherKeys level 2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 # - kitty keyboard protocol |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 # Change directory to where this script is, so that the json file is found |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 # there. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
20 exe 'cd ' .. expand('<sfile>:h') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 echo 'working in directory: ' .. getcwd() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 const filename = 'keycode_check.json' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
24 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
25 # Dictionary of dictionaries with the results in the form: |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
26 # {'xterm': {protocol: 'none', 'Tab': '09', 'S-Tab': '09'}, |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
27 # 'xterm2': {protocol: 'mok2', 'Tab': '09', 'S-Tab': '09'}, |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
28 # 'kitty': {protocol: 'kitty', 'Tab': '09', 'S-Tab': '09'}, |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
29 # } |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
30 # The values are in hex form. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
31 var keycodes = {} |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 if filereadable(filename) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 keycodes = readfile(filename)->join()->json_decode() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 else |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
36 # Use some dummy entries to try out with |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 keycodes = { |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 'xterm': {protocol: 'none', 'Tab': '09', 'S-Tab': '09'}, |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
39 'kitty': {protocol: 'kitty', 'Tab': '09', 'S-Tab': '1b5b393b3275'}, |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
40 } |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
41 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
42 var orig_keycodes = deepcopy(keycodes) # used to detect something changed |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
43 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
44 # Write the "keycodes" variable in JSON form to "filename". |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
45 def WriteKeycodes() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
46 # If the file already exists move it to become the backup file. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
47 if filereadable(filename) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
48 if rename(filename, filename .. '~') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
49 echoerr $'Renaming {filename} to {filename}~ failed!' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
50 return |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
51 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
52 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
53 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
54 if writefile([json_encode(keycodes)], filename) != 0 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
55 echoerr $'Writing {filename} failed!' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
56 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
57 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
58 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
59 # The key entries that we want to list, in this order. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
60 # The first item is displayed in the prompt, the second is the key in |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
61 # the keycodes dictionary. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
62 var key_entries = [ |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
63 ['Tab', 'Tab'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
64 ['Shift-Tab', 'S-Tab'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
65 ['Ctrl-Tab', 'C-Tab'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
66 ['Alt-Tab', 'A-Tab'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
67 ['Ctrl-I', 'C-I'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
68 ['Shift-Ctrl-I', 'S-C-I'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
69 ['Esc', 'Esc'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
70 ['Shift-Esc', 'S-Esc'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
71 ['Ctrl-Esc', 'C-Esc'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
72 ['Alt-Esc', 'A-Esc'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
73 ['Space', 'Space'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
74 ['Shift-Space', 'S-Space'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
75 ['Ctrl-Space', 'C-Space'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
76 ['Alt-Space', 'A-Space'], |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
77 ] |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
78 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
79 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
80 # Action: list the information in "keycodes" in a more or less nice way. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
81 def ActionList() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
82 var terms = keys(keycodes) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
83 if len(terms) == 0 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
84 echo 'No terminal results yet' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
85 return |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
86 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
87 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
88 # Use one column of width 10 for the item name, then columns of 20 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
89 # characters to fit most codes. You will need to increase the terminal |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
90 # width to avoid wrapping. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
91 echon printf(' ') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
92 for term in terms |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
93 echon printf('%-20s', term) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
94 endfor |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
95 echo "\n" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
96 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
97 var items = ['protocol'] + key_entries->copy()->map((_, v) => v[1]) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
98 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
99 for item in items |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
100 echon printf('%8s ', item) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
101 for term in terms |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
102 var val = get(keycodes[term], item, '') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
103 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
104 # see if we can pretty-print this one |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
105 var pretty = val |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
106 if val[0 : 1] == '1b' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
107 pretty = 'ESC' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
108 var idx = 2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
109 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
110 if val[0 : 3] == '1b5b' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
111 pretty = 'CSI' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
112 idx = 4 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
113 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
114 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
115 var digits = false |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
116 while idx < len(val) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
117 var cc = val[idx : idx + 1] |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
118 var nr = str2nr('0x' .. cc, 16) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
119 idx += 2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
120 if nr >= char2nr('0') && nr <= char2nr('9') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
121 if !digits |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
122 pretty ..= ' ' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
123 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
124 digits = true |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
125 pretty ..= cc[1] |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
126 else |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
127 digits = false |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
128 if nr >= char2nr(' ') && nr <= char2nr('~') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
129 # printable character |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
130 pretty ..= ' ' .. printf('%c', nr) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
131 else |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
132 # non-printable, use hex code |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
133 pretty = val |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
134 break |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
135 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
136 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
137 endwhile |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
138 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
139 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
140 echon printf('%-20s', pretty) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
141 endfor |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
142 echo '' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
143 endfor |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
144 echo "\n" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
145 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
146 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
147 def GetTermName(): string |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
148 var name = input('Enter the name of the terminal: ') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
149 return name |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
150 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
151 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
152 # Gather key codes for terminal "name". |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
153 def DoTerm(name: string) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
154 var proto = inputlist([$'What protocol to enable for {name}:', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
155 '1. None', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
156 '2. modifyOtherKeys level 2', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
157 '3. kitty', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
158 ]) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
159 echo "\n" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
160 &t_TE = "\<Esc>[>4;m" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
161 var proto_name = 'none' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
162 if proto == 1 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
163 &t_TI = "" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
164 elseif proto == 2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
165 &t_TI = "\<Esc>[>4;2m" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
166 proto_name = 'mok2' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
167 elseif proto == 3 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
168 &t_TI = "\<Esc>[>1u" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
169 proto_name = 'kitty' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
170 else |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
171 echoerr 'invalid protocol choice' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
172 return |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
173 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
174 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
175 # executing a dummy shell command will output t_TI |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
176 !echo >/dev/null |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
177 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
178 if !has_key(keycodes, name) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
179 keycodes[name] = {} |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
180 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
181 keycodes[name]['protocol'] = proto_name |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
182 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
183 echo "When a key press doesn't get to Vim (e.g. when using Alt) press Space" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
184 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
185 for entry in key_entries |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
186 ch_logfile('keylog', 'w') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
187 echo $'Press the {entry[0]} key (q to quit):' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
188 var r = getcharstr() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
189 ch_logfile('', '') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
190 if r == 'q' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
191 break |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
192 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
193 var log = readfile('keylog') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
194 delete('keylog') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
195 if len(log) < 2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
196 echoerr 'failed to read result' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
197 return |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
198 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
199 var done = false |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
200 for line in log |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
201 if line =~ 'raw key input' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
202 var code = substitute(line, '.*raw key input: "\([^"]*\).*', '\1', '') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
203 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
204 # convert the literal bytes into hex |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
205 var hex = '' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
206 for i in range(len(code)) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
207 hex ..= printf('%02x', char2nr(code[i])) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
208 endfor |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
209 keycodes[name][entry[1]] = hex |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
210 done = true |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
211 break |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
212 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
213 endfor |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
214 if !done |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
215 echo 'Code not found in log' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
216 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
217 endfor |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
218 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
219 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
220 # Action: Add key codes for a new terminal. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
221 def ActionAdd() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
222 var name = input('Enter name of the terminal: ') |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
223 echo "\n" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
224 if index(keys(keycodes), name) >= 0 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
225 echoerr $'Terminal {name} already exists' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
226 return |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
227 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
228 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
229 DoTerm(name) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
230 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
231 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
232 # Action: Replace key codes for an already known terminal. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
233 def ActionReplace() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
234 var terms = keys(keycodes) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
235 if len(terms) == 0 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
236 echo 'No terminal results yet' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
237 return |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
238 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
239 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
240 var choice = inputlist(['Select:'] + terms->copy()->map((idx, arg) => (idx + 1) .. ': ' .. arg)) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
241 echo "\n" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
242 if choice > 0 && choice <= len(terms) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
243 DoTerm(terms[choice - 1]) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
244 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
245 echo 'invalid index' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
246 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
247 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
248 # Action: Quit, possibly after saving the results first. |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
249 def ActionQuit() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
250 # If nothing was changed just quit |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
251 if keycodes == orig_keycodes |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
252 quit |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
253 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
254 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
255 while true |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
256 var res = input("Save the changed key codes (y/n)? ") |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
257 if res == 'n' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
258 quit |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
259 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
260 if res == 'y' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
261 WriteKeycodes() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
262 quit |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
263 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
264 echo 'invalid reply' |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
265 endwhile |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
266 enddef |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
267 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
268 # The main loop |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
269 while true |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
270 var action = inputlist(['Select operation:', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
271 '1. List results', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
272 '2. Add results for a new terminal', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
273 '3. Replace results', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
274 '4. Quit', |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
275 ]) |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
276 echo "\n" |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
277 if action == 1 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
278 ActionList() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
279 elseif action == 2 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
280 ActionAdd() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
281 elseif action == 3 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
282 ActionReplace() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
283 elseif action == 4 |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
284 ActionQuit() |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
285 endif |
46d1a434784b
patch 9.0.0887: cannot easily try out what codes various keys produce
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
286 endwhile |