screen i strzałki

Jakub Bogusz qboosh w pld.org.pl
Sob, 29 Cze 2002, 01:47:11 CEST


To jest porąbane - strzałki (i teoretycznie "keypad", ale to chyba nie
działa na screenie) mogą pracować w dwóch trybach: "normal" i "application".
Domyślny tryb (i przywracany po resecie terminala) to "normal"; tryb
"application" można włączyć sekwencją ^(ks) (a dokładniej: "\e[?1h" dla
strzałek i "\e=" dla keypada); ale: w terminfo dla terminala "screen"
są informacje o kursorach w "application mode"; to samo umieszcza
screen w $TERMCAP!

Żeby było ciekawiej - na konsoli linuksowej (TERM=linux) też występują
dwa tryby, przełączane tymi samymi sekwencjami (przy czym keypad działa
- łatwo sprawdzić wypisując "\e=" - klawiatura numeryczna zacznie
generować zupełnie inne sekwencje) - też domyślny jest "normal", ale
w terminfo już są informacje właśnie o trybie "normal".

Próbowałem zmienić w ten sam sposób opis terminfo  i TERMCAP dla
terminala "screen" - o ile slrn zaczął działać poprawnie, to vim
przestał.
Okazuje się, że vim działa dziwnie - na screenie najwyraźniej sam
przełącza tryb na "application" (samo przełączanie znalazłem w kodzie)
i oczekuje takich sekwencji w terminfo; z kolei na konsoli nie
przełącza (chociaż nie widzę w kodzie żadnego warunku, który mógłby
o tym decydować) i oczekuje, że w terminfo będą informacje o trybie
"normal" :/

Jako że w terminfo może być przechowywana tylko jedna sekwencja per
klawisz, to wychodzi, że sekwencje dla strzałek lepiej żeby były zaszyte
w kodzie... (swoją drogą w dosemu (src/base/keyboard/keyb_slang.c) jest
taki komentarz właśnie przy tym: /* Who knows which mode it'll be in */).


-- 
Jakub Bogusz    http://prioris.mini.pw.edu.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl