3 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
4 MirBSD console ^[[11~^[[12~^[[13~^[[14~^[[15~ ^[[17~ ^[[18~ ^[[19~^[[20~^[[21~^[[23~^[[24~ also “ssh 3.2”, PuTTY, rxvt below
5 xterm ^[OP ^[OQ ^[OR ^[OS ^[[15~ ^[[17~ ^[[18~ ^[[19~^[[20~^[[21~^[[23~^[[24~ also cygwin abusch, st izabera
6 gnome-t. below - ^[OQ ^[OR ^[OS ^[[15~~^[[17~~^[[18~~^[[19~^[[20~ - ^[[23~^[[24~
7 konsole ^[OP ^[OQ ^[OR ^[OS ^[[15~ ^[[17~ ^[[18~ ^[[19~^[[20~^[[21~ - ^[[24~ also yakuake
8 linux console ^[[[A ^[[[B ^[[[C ^[[[D ^[[[E ^[[17~ ^[[18~ ^[[19~^[[20~^[[21~^[[23~^[[24~ also cygwin console below
11 Do something with these keys:
16 Arrow:
\e[C
\e[D
\e[A
\e[B
25 Alt-arrow: - (can set Alt=ESC mode, but doesn't work with arrow keys)
32 Arrow:
\e[C
\e[D
\e[A
\e[B
40 Ctrl-arrow:
\eOC
\eOD
\eOA
\eOB
43 Ctrl-pgup: putty scroll back
44 Ctrl-pgdn: putty scroll fwrd
48 Alt-arrow:
\e\e[C
\e\e[D
\e\e[A
\e\e[B
56 Shift-arrow:
\e[C
\e[D
\e[A
\e[B
59 Shift-pgup: putty scroll back
60 Shift-pgdn: putty scroll fwrd
68 Arrow:
\e[C
\e[D
\e[A
\e[B
76 Ctrl-arrow:
\e[1;5C
\e[1;5D
\e[1;5A
\e[1;5B
84 Shift-arrow:
\e[1;2C
\e[1;2D
\e[1;2A
\e[1;2B
89 Shift-ins *DOES NOT WORK* but inserts the X PRIMARY SELECTION
92 Shift-ctrl-arrow:
\e[1;6C
\e[1;6D
\e[1;6A
\e[1;6B
94 Alt-ctrl-arrow:
\e[1;7C
\e[1;7D
\e[1;7A
\e[1;7B
96 Alt-shift-arrow:
\e[1;4C
\e[1;4D
\e[1;4A
\e[1;4B
98 Alt-shift-ctrl-arrow:
\e[1;8C
\e[1;8D
\e[1;8A
\e[1;8B
100 Alt-arrow:
\e[1;3C
\e[1;3D
\e[1;3A
\e[1;3B
111 Arrow:
\e[C
\e[D
\e[A
\e[B
119 Ctrl-arrow:
\eOc
\eOd
\eOa
\eOb
127 Shift-arrow:
\e[c
\e[d
\e[a
\e[b
129 Shift-ctrl-arrow:
\e[c
\e[b
\e[a
\e[b
131 Alt-ctrl-arrow:
\e\eOc
\e\eOd
\e\eOa
\e\eOb
133 Alt-shift-arrow:
\e\e[c
\e\e[d
\e\e[a
\e\e[b
135 Alt-arrow:
\e\e[C
\e\e[D
\e\e[A
\e\e[B
141 Arrows:
\e[C
\e[D
\e[A
\e[B
149 Ctrl-arrow:
\e[5C
\e[5D
\e[5A
\e[5B
157 Shift-arrows:
\e[2C
\e[2D
\e[2A
\e[2B
165 Alt-arrows:
\e[3C
\e[3D
\e[3A
\e[3B
173 Ctrl-Alt-arrows: - (window manager takes)
174 Ctrl-Shift-arrows:
\e[6C
\e[6D
\e[6A
\e[6B
175 Ctrl-Shift-Alt-arrows:
\e[8C
\e[8D
\e[8A
\e[8B
180 Arrows:
\e[C
\e[D
\e[A
\e[B
188 Ctrl-arrows:
\e[C
\e[D
\e[A
\e[B
204 Alt-arrows:
\e\e[C
\e\e[D
\e\e[A
\e\e[B
215 Arrows:
\e[C
\e[D
\e[A
\e[B
223 Ctrl-arrows:
\e[C
\e[D
\e[A
\e[B
234 Alt-arrows: - (switches console)
240 Arrows:
\e[C
\e[D
\e[A
\e[B
251 Alt-enything: prefixed with ESC
253 -----------------------
254 jstar missing sequences
255 -----------------------
256 ^O options (supposed to be set tab width)
258 ^U undo (supossed to be unerase)
260 ^\ meta (supposed to be refresh screen)
261 ESC $ insert math result money formatted
263 ESC s isearch fwrd (supposed to be Sincerely)
264 ESC c compile (supposed to be center line)
265 ^Q U align paragraph (don't know what this does)
266 ^Q ^Q repeat next command once every second
267 ^Q O spell check entered word
268 ^Q W scroll up- repeat once every second
269 ^Q Z scroll down- repeat once every second
270 ^Q Ins it does something...
271 ^Q Home scroll up repeating
272 ^Q End scroll down repeating
276 ^K I column replace mode on
282 ^K dnarw save and exit
289 -----------------------
300 ^O edit file (asks to save current)
310 - shell window intercept should be smarter. hit ^K ^H- the ^H is going to the
313 - do not use ^[^[ for anything. it prevents Alt-arrow
316 - search should automatically use 'k' mode if block is
317 selected. Cursor should jump to top of block when done. Jump
321 - save all files without asking thing for quick compile
323 - better parsing of compile messages
326 - continued search mode for jpico?
328 - smarter highlighter- need char and string storage.
330 - make ^K F prompt with previous text (PICO)?
332 ^K X leads to segfault?
334 if I use ^K C to move search string into search prompt, it says not found
335 even though it found it.
337 options are screwed up: we copy window to buffer (to get buffer options
338 to the buffer). But if we have multiple windows, buffer options will have
341 we are missing many query and prompt window abort handlers, which cause
344 - update help screens: some things have changed (emacs is more like emacs).
347 Fix for next release highlight:
350 lose state during page down?
354 byte to byte conversions?
355 UTF-8 decoder right at input instead of in qw and utype?
359 Reload modified files (or current window)
361 don't use -notite by default. (why? we switched back to -notite…)
363 Watch loaded file for changes
365 Save all history buffers and keyboard macros in ~/.joe_state file?
366 Although, if merged, it must be disabled by default like mksh’s HISTFILE is:
367 18:48⎜«asarch» That would be for a wish list then: to keep the
368 ⎜ list of all opened files with their last position
369 Natureshadow agrees with me that this is a JOE antifeature
371 Update documentation.
373 shift/alt/ctrl arrow key stuff. (partially done)
375 regex: character classes? a-z matches any letter?
377 parse *rc file only once?
379 different symbol for 'joe' directory
381 can't load terminfo- should switch to termcap or provide compiled
382 ANSI terminfo built in.
386 -----------------------
388 move *rc files to .etc/jupp directory? Or XDG, see below.
390 check all instances of 'chars': use unicode to locale symbols instead.
392 - we assume '\n' is line terminator.
393 - there are many references to '\t' and ' '.
394 - EBCDIC used to be fixed record length (80 columns) anyway.
396 Math: octal(?), more functions. (-lm?)
398 Perl compatible regex search.
399 (Ugh. But grouping like \+\(foo\+ \) would be cool.)
400 (Also, alternatives and/or backreferences, think ^Q=)
402 Improvements for regular text
403 -----------------------------
404 mode where wordwrap wraps rest of paragraph?
406 mode where all editing wraps rest of paragraph?
408 soft wrap (i.e. wrap on screen but not in the file)!
410 Improvements for programming
411 ----------------------------
413 Jump to definition (tags does this)
415 Show list of references
417 Diff mode (need vertical window)
426 Support for more languages:
428 Paragraph reformat mode for TeX files.
430 ^G Matching for verilog begin ... end, html tags, etc.
432 Reformat paragraph should reformat C function if we're editing C.
434 File loading/storing:
436 Should have switch buffers in current window as more fundamental joe key
437 sequence (it's ^[ u and ^[ v for now).
439 Unnamed buffers should be in bufed list (was fixed in the lost joe 2.9)
443 search and replace 'fred' to 'foo':
444 find 'Fred', gets 'Foo'.
446 Rectangle mode for emacs yank system
448 Overtype mode works for yank
450 ESC args should work differently in emacs
452 many negative args do not work properly
454 exiting options and i-search with ESC is not pretty
455 (it isn't in emacs either)
459 Better environment settings for shell windows.
463 Include documentation for joe hackers. I wrote a lot of this
464 some time, I need to find it.
466 joe should open tty earlier in startup sequence because ^Y
467 is suspend character on sun.
469 UTF-8/Internationalization
470 --------------------------
472 - right-left mode for Hebrew/Arabic?
474 There is no good way to do this. For all rtol, you could use a reversed
475 xterm. For mixed, you need tags to indicate direction.
478 UI for changing colors in the editor (or at least dark/light mode)
480 More colors: UI for using 256 color xterms.
483 Lock files being edited?
484 one person gets write lock
487 Don't understand: optionally break hardlinks on save? what is "tla"?
489 Use memory mapped files to fast load large files. Have to not
490 count no. lines in each buffer on startup.
493 Emulate other editors? Brief, EDT?
498 Sort should be column wise, not row wise?
500 HTML-style thing for option selection?
505 Emit ESC c to reset terminal on startup?
506 -> no, this power-cycles a hardware DEC VT420 (takes 1-2 minutes)
508 Look into clearing right-most column.
512 Interactive macros during file load are broken. Think about multiple
513 stack hack (otherwise template based C++ callbacks).
518 ` and autoindent mode are a problem for drag and drop.
519 any way we can distinguish normal typing from a drop?
521 xterm can actually do that: it's called bracketed paste mode:
522 you send ^[ [ ? 2 0 0 4 h then any pastes you receive begin
523 with ^[ [ 2 0 0 ~ and end with ^[ [ 2 0 1 ~ until you send
524 ^[ [ ? 2 0 0 4 l but it only works with recent xterm and, while
525 you can wrap the requests between ^[ P and ^[ \ to make them
526 pass GNU screen it would wreck havoc with the other tabs, so
527 we make this conditional on $TERM being xterm-xfree86 offering
528 a generic paste mode in addition via :paste keymap
530 mouse mode: mouse can position cursor. Would be good for
535 Fixed record length mode
538 Major code improvements:
540 Vertical windows (optionally lock-stepped).
550 Fix it so all options appear in ^T. Maybe make hook function
551 to handle major changes. Need this for major mode change for
556 -cleanup (delete extra lines and extra spaces at ends of lines).
558 -show no. utf characters, not no. bytes
565 • replace all int with size_t where applicable
566 • merge syntax handling code from joe-3.7+
567 • merge math from joe-3.7+
568 • add group support to regex code
569 • make -Wcast-qual clean
570 • write a jupp(1) mdoc page
571 • use mirkev (better code for hashtables)
572 • attach labels to ftypes; allow ftypes to inherit from these
573 labels, instead of fdefault; add UI to apply an ftype, including
574 fdefault, to the current buffer (requested by Wayne Cuddy)
575 • regex needs groups like 「\+\(foo\)」
576 • bracketed paste mode should disable autoindent, wordwrap,
577 updating the status line, …(?) ⇐ implemented using a “paste”
578 labeled ftype that is switched to using the UI (command)
579 • switch from autoconf to mirtoconf2
580 • ANSI syntax highlighting; auto-turn it on in shell windows (‽)
581 ⇒ would need to hide the ANSI chars, yet enable backspacing
582 • handle combining characters in the scrn array somehow
583 • add a soft line break flag: display as line-wrapped, do not
584 save any newlines introduced by that
585 • perhaps wrap at U+00AD?
586 • put all configuration files into /usr/share; use XDG dirs for
587 overriding (HOME, maybe site?)
588 • rc.c: struct glopts.set (int*) violates the strict aliasing
589 rule as it’s treated as (unsigned char *) for type 2 (global
590 option string), consider a union instead (check local types!)
591 • plug memory leaks (Valgrind reports a few)
594 __________________________________________________________________
595 $MirOS: contrib/code/jupp/TODO,v 1.40 2017/08/09 01:15:24 tg Exp $