Detala historio en la angla cxi tie / Història detallada en anglès aquí
Mi sxajne ne estas la nura luniksa uzanto kiu trafis al problemoj kun la klavo retroiro (tiu, kiu forigas maldekstran tajpitan literon, backspace angle).
Trafinte lastatempajn problemojn kun ties uzo en vim 7, mi decidis sercxi la finan kauxzon de miaj problemoj. Mi malkovris kio okazas pri retroiro en xterm.
Ajna konzola programo havas du sistemojn por demandi kiaj estas la sendokodoj de tajpitaj specialaj klavoj (kiel retroiro):
- termcap (aux terminfo en pli novaj sistemoj)
- stty
Vim, konkrete uzas la du sistemojn, kaj 'stty' prioritatas sur termcap. Sxajne en cxiuj programoj tiel estas. Kiel kontroli la agordoj de cxiu?
- por termcap, ruligu "infocmp", kaj sercxu la kodon por la retroiro.
- por stty, ruligu "stty -a", kaj same sercxu tiun kodon (laux nomo erase, gxenerale)
En la kazo de xterm, eblas ecx kontroli du aferojn:
- kion sendos la xterm je evento de klako de la retroira klavo
(Tion oni faras per la iksa rimedo (X resource) *VT100.Translations, per #override ). Guglo helpos pri la detaloj.
- kiel agordos la xterm stty-on. Tion oni agordas per la iksa rimedo *ttyModes (de xterm).
Kia estis mia sistemo?
Cxiuj, en termcap de xterm havas ke la retroiro estas ^H. Cxar antauxsupozite xterm cxiam sendas ^H. Sed mi havis la du iksajn rimedajn agordojn, por ke gxi sendu ^? kaj agordu stty por ^?. Tial, al mi cxiuj programoj funkciis, krom la nova vim.
Per gdb mi malkovris ke vim, krom atenti termcap kaj stty, sendas specialan kodon al xterm (demando DCS) por peti la kodon de la retroira klavo. Kaj tiam mi malkovris ke en la kodo de xterm estas forte skribite: "Je demando, respondu cxiam ^H". Tio forfikis la uzadon de vim - tiu demando.
Por ke vim demandu tiajxon, kaj xterm respondu al gxi, necesas almenaux la xterm-on kompili speciale. Estas ankaux kompila opcio por ke vim ne demandu tion al xterm.
Mi sendis la eraroraporton al zorganto de xterm, kaj li konsentis ke estas io misfarita tie, kvankam li ne tre bone komprenis dume. Sxajne li rapide respondis al mi. Mi same skribis al bugzilla de gentoo (ligon mi donis komence), kaj tie neniu respondis, kvankam sxajne tio iras al iu dissendolisto.
Espereble baldaux ni vidos novan xterm kun tio iom korektita. Mi ne proponis flikon, cxar en la momento de respondo al DCS demando jam ne plu estas en memoro la agordoj de la retroira klavo. Kaj ne klaras kiun kodon respondi: cxu tiun sendatan al enkonzolaj programoj, cxu tiun agordintan stty-on.
Min surprizigas ke je kazo de misfunkcio kun la retroira klavo, multaj retejoj skribas ne plen-efikajn solvojn, kvankam la gxenerala funkciado aspektas suficxe simpla. Ja cxio cxi estas acxege (termcap, terminfo, stty, DCS, ...), sed pli malpli kompreneble.