Sziasztok!
Az a kérdésem, hogy miért töröl két karaktert a backspace, ha magyar ékezetes betűket használok. Értem én, hogy azok 2 byte-on tárolódnak, de miért nem tudja a console, hogy azok is csak egy karakternek számítanak a megjelenítésnél. (Tehát a bufferből kettőt, de a képernyőről csak egyet kéne törölnie ugyebár.)
A beállítási módszerem igen egyszerű:
loadkeys hu
setfont lat2-16
Lehet, hogy túl puritán? Kéne még valami hozzá?
A válaszokat előre is köszönöm, főleg a használhatókat. :-)
MEGOLDÁS:
loadkeys -u hu
setfont lat2-16
export LANG="en_US.UTF-8"
- 2027 megtekintés
Hozzászólások
Egyetlen backspace billentyű töröl kettőt?
- A hozzászóláshoz be kell jelentkezni
Igen, pontosan. Persze csak akkor, ha ékezetes betűt törlök, mert azok 2 byte-on tárolódnak. (Ugyanannyit töröl a képernyőn is, mint a buffer-ben.)
- A hozzászóláshoz be kell jelentkezni
Egészen pontosan hol töröl kettőt? Tehát például bash parancssorban, vagy valamely más parancs (például cat) bemenetét gépeled? A backspace leütésekor látszólag kettőt töröl, de ha elfogadtatod, akkor az adott program melyik értéket kapja, a látottat, vagy a logikailag helyeset?
Mi a locale beállításod? echo $LC_<tab>; echo $LANG; locale -a
"stty -a | grep iutf8" mit mond? "stty iutf8" megjavítja?
Grafikus terminálokban is tapasztalható a fenti hiba? Ott mi a locale, mi az stty iutf8?
- A hozzászóláshoz be kell jelentkezni
A bash-ban töröl kettőt console üzemmódban.
Az echo 'ű' pl. visszaadja az ű-t.
Ennek: $LC_ csak egy változatát kínálja fel, a $LC_COLLATE visszaadott egy C-t.
A $LANG en_US, de hiába írom át export $LANG="hu_HU"-ra vagy ""-re, marad en_US. (Miért nem enged átírni egy szimpla környezeti változót?)
A locale -a visszaad egy rahedli országot, köztük van a hu_HU és a hu_HU.utf8 is.
Az stty -a visszaadja az iutf8-at is.
Az xterm-ben nem jelentkezik a hiba, de ott az ő és ű ékezet nélküliként jelenik meg. (Ezt még talán túlélem.)
A mousepad nevű texteditor progiban megjelenik az ő és ű is, holott ugyanazzal a font-al (monospace) dolgozik, mint az xterm.
- A hozzászóláshoz be kell jelentkezni
dpkg-reconfigure console-data ?
- A hozzászóláshoz be kell jelentkezni
Slackware-t használok, azon nincsenek ilyen parancsok.
- A hozzászóláshoz be kell jelentkezni
Oops, a "locale -a"-t félreírtam, sima "locale"-re gondoltam.
Az a baj szerintem, hogy kevered az utf8-at, meg a nem utf8-at. Első körben el kéne dönteni, hogy melyiket szeretnéd következetesen használni. Az utf-8 a jó döntés.
Következő lépésként a LANG-ot ennek megfelelően kell beállítani, például "en_US.UTF-8". Ellenőrzésképp a "locale charmap" parancs UTF-8-at kell hogy adjon. Most iso-8859-1-en van.
A loadkeys proginak használd a "-u" kapcsolóját. Szükség lehet a unicode_start és/vagy "kbd_mode -u" parancs kiadására is.
stty esetén az a lényeg, hogy az iutf8 simán, vagy mínusz jellel szerepel-e, "iutf8" jó, "-iutf8" rossz, már ha utf8-at akarsz. "stty iutf8" állítja be jóra.
Az export parancsban ne rakj dollárt a változó elé.
- A hozzászóláshoz be kell jelentkezni
Nagy isten vagy!!!
A $ részt szégyenlem, az nagyon amatőr hiba volt. :-)
Már az elsőként kipróbált LANG változó átírás megoldotta a dolgot, pedig a charmap még mindig ISO... (Még úgy is, hogy én export LANG=en_US.utf8 -at írtam, tehát se "" közé nem raktam, sem UTF-8 vagy egyéb cifrázás. Ami érdekes, hogy ugyanúgy jó az utf8, UTF8 és UTF-8 is. (Ezutóbbi a legérdekesebb, mert itt már nem az játszik be, hogy nem case sensitive a dolog. Ez már tök más, mégis megeszi.)
A loadkeys -u hu hatására megvan az UTF-8 charmap.
A unicode_start egy shell script, ami az általam is használt loadkeys és setfont parancsokat futtatja, de a LANG-ot nem állítja be, így egymagában nem sokat ér.
Az stty-ben az iutf8 most - nélküli, de lehet, hogy ez már a loadkeys -u hatása.
A kbd_mode most UTF-8, de szerintem ez is a loadkeys -u miatt van.
- A hozzászóláshoz be kell jelentkezni
Ha nem akarod lábon lőni magad később, akkor legyen "en_US.UTF-8" vagy "hu_HU.UTF-8" pontosan. A legtöbb proginak mindegy, de emlékeim szerint az Xlib-nek nem, neki csak így jó.
- A hozzászóláshoz be kell jelentkezni
Köszi, de én is erre jutottam, miután a charmap-ra mindig ez jött ki. Gondoltam, biztos, ami biztos. :-)
- A hozzászóláshoz be kell jelentkezni
Ha nem szeretnéd a rendszert szétgányolni akkor használd a meglévő fájlokat:
/etc/rc.d/rc.font
/etc/rc.d/rc.keymap
/etc/profile.d/lang.sh
/etc/profile.d/lang.csh
Egyébként vannak kimondottam váltáshoz parancsok is, amik a telepítéskor is futkároznak azokat menet közben is elérheted.
setconsolefont
keyboardconfig
--
falura elmegy, városban meg úgy sem nézik...
- A hozzászóláshoz be kell jelentkezni
Kösz, de ezekre már én is rájöttem. Pontosan ugyanezeket a file-okat pakoltam a telepítőmbe, meg még egy fstab-ot, egy lilo.conf-ot és az xfce egy-két config file-ját.
Az igazsághoz hozzátartozik, hogy nem a szabványos Slackware telepítőt használom, hanem egy abból létrehozott saját disztrot, amiben nincs menüs telepítő. 10 perc alatt fel lehet vele rántani egy tökéletesen működő Linux-ot, amiben minden benne van, ami nekem kell.
- A hozzászóláshoz be kell jelentkezni
Mégegy furcsa adalék:
A Midnight Commander-ben pont fordítva működik rosszul, ott ugyanis az ékezetes karakterek leütésénél két karakter íródik lent a parancssorba, az első az igazi, a második pedig egy space (vagy valami, ami annak látszik). Törlésnél viszont jól működik, vagyis egyesével töröl mindent.
- A hozzászóláshoz be kell jelentkezni
Ha utf8-at használsz, és a fentiek szerint jól beállítod, akkor szükség lesz még a midnight commanderből vagy 4.7-es verzióra, vagy 4.6-osból alaposan megpatcheltre (a legtöbb disztribúcióban benne van ez a patch). Ha ez megvan, akkor jól fog működni. Ha neked esetleg nincs, akkor valószínűleg az a legegyszerűbb, ha fordítasz forrásból egy legújabb stabil verziót.
- A hozzászóláshoz be kell jelentkezni
A Slackware telepítő DVD ugyanúgy viselkedik. Ha kiválasztom az 1-el boot-olásnál a hu keyboard-ot, majd 1-el elfogadom és belépek, ugyanúgy beletöröl a prompt-ba ékezetes karakterek backspace-elése esetén. (És még az őű sem jelenik meg rendesen.)
- A hozzászóláshoz be kell jelentkezni