Sziasztok!
Mostanában egyre gyakrabban bróbálgatom a freebsd-t. Igaz túlnyomó részben virtualbox-ban. Ami nagyon zavar, hogy nem tudom elérni, hogy bármilyen grafikus felületen (annak termináljában) ékezetes karakterek legyenek. Ez szerint is "póbálkoztam", de mégsem tudok terminaban ékezetes karaktereket mégcsak beilleszteni sem... A kérdésem, hogy mit rontok el, azaz mit nézek be? Előre is köszönöm a segítséget!
megoldás:
shellcsere. az /bin/sh nem kezelte az ékezetes betűket.
- 2159 megtekintés
Hozzászólások
1. Kicsit pontosabban, mi a hibajelenség? Mondjuk lenyomod az 'é' feliratú billentyűt, és ekkor mi történik?
2. 'locale' parancs kimenete micsoda?
- A hozzászóláshoz be kell jelentkezni
Ha mondjuk lenyomom az 'é'-t akkor nem csinál semmit. Ha a 'z'-t akkor ír egy z-t. De ezt csak a grafikus felület termináljában produkálja, kivéve ha su-val rootra váltok, mert akkor 'é' lenyomására é-t ír.
locale:
LANG=hu_HU.UTF-8
LC_CTYPE="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_ALL=
szerk.
nem root usernél a szöveges terminálon sem jelenik meg ékezetes betű, de pl. mceditben igen.
- A hozzászóláshoz be kell jelentkezni
Betűtípusok telepítve? Csak terminálban nem mennek az ékezetes karakterek vagy más programokban (szövegszerkesztő, böngésző, stb.) sem?
- A hozzászóláshoz be kell jelentkezni
Én külön betűtípust nem telepítettem. Jobban megnézve csak a nem root useremnél csinálja és csak terminálban, tehát a szöveges képernyőn is, de szövegszerkesztőben pl. nem.
- A hozzászóláshoz be kell jelentkezni
Milyen terminált használsz? Nem lehet, hogy nem támogatja az UTF8-at ill. nem UTF8-ra van állítva?
- A hozzászóláshoz be kell jelentkezni
Grafikus felületen mate terminált. UTF-8 be van állítva. Ha su-val rootra váltok, akkor szépen lehet bele ékezetesen írni, de ha sima felhasználóként próbálok, akkot semmilyen ékezetes karakter nem jelenik meg. Ha pl. bemásolom az alábbi szöveget a terminálba: 'asdéálkj', akkor ez jelenik meg benne: 'asdlkj'.
- A hozzászóláshoz be kell jelentkezni
Megpróbálnád egy másik terminállal is? Pl. az rxvt-unicode-dal.
- A hozzászóláshoz be kell jelentkezni
Ugyanaz a helyzet: root tud ékezetes betűket, sima user nem.
- A hozzászóláshoz be kell jelentkezni
Hm. Tehát akkor nem terminál-specifikus. Bevallom, hirtelen kifogytam az ötletekből :(
Szerk.: vagy talán mégis. A /etc/login.conf
-ban mi van? Leginkább a useredre érvényes charset
-re lenne érdekes.
- A hozzászóláshoz be kell jelentkezni
Annyit tettem vele, hogy a default rész végére odaírtam:
:charset=UTF-8:\
:lang=hu_HU.UTF-8:
utána futattam: cap_mkdb /etc/login.conf
Aztán mivel nem voltak a sima usernek ékezetes betűi, a user home könyvtárában lévő .login.conf-ba is beleírtam:
me:\
:charset=UTF-8:\
:lang=hu_HU.UTF-8:
Mondjuk ez utóbbira nem futattam a cap_mkdb-t. Nem tudom, hogy ez hiba-e.
- A hozzászóláshoz be kell jelentkezni
Nem, a ~/.login_conf-hoz nem kell cap_mkdb.
Nálam a következő van:
- csináltam egy hungarian loginclass-t, azaz ez van a /etc/login.conf-ban:
#
# Hungarian Users Accounts. Setup proper environment variables.
#
hungarian|Hungarian Users Accounts|magyar:\
:charset=UTF-8:\
:lang=hu_HU.UTF-8:\
:timezone=Europe/Budapest:\
:setenv=ENV=~/.shrc,CHARSET=UTF-8:\
:coredumpsize=0:\
:tc=default:
- lefuttattam a cap_mkdb-t
- a megfelelő felhasználót betettem a hungarian loginclass-ba
# vipw
# fgrep én /etc/master.passwd
én:kriksz-kraksz:aaaaaa:bbbbbb:hungarian:0:0:Zahemszky Gabor:/home/én:/bin/sh
És ezek után XFCE alatt megy xterm-ben, Terminal-ban, Mousepad-ben, és í. t.
(Amúgy a bevezetőben hivatkozol valamilyen doksira, oldalra, ami alapján csináltad, de én azt nem tudom, hogy mire hivatkozol :-) )
- A hozzászóláshoz be kell jelentkezni
Javítottam a linket. Annyi, hogy én pkg-vel raktam fel az xorg-ot és a mate-t. Megcsináltam amit írtál, de nem változott semmi :(
- A hozzászóláshoz be kell jelentkezni
Álljon meg a gyászmenet! Amikor terminálban gépelsz, azt hol teszed? shell-promptnál? Csak mert a FreeBSD gyári /bin/sh-ja nem kezeli az ékezetes karaktereket, míg a /bin/csh (ez ugyebár a root shellje), vagy épp a bash igen. Szóval nézd már meg lécci, hogy shell-promptnál elindítasz egy "cat" -ot, és ott nézed azokat az ékezetes karaktereket. Szerintem ott már működni fognak.
Ha pedig mindenképpen akarsz még shell-promptból is ékezetes karaktereket gépelni (mondjuk ékezetes fájlnév, amit személy szeritn nem nagyon preferálok), akkor válts shell-t. A pdksh, a ksh93, a bash, ezek mind kezelik az ékezetes karaktereket. (Lehet, hogy a natív /bin/sh-t is rá lehet veni, sose éreztem igényét a dolognak.)
- A hozzászóláshoz be kell jelentkezni
Ah, itt lesz a pont. Kipróbáltam, a /bin/sh tényleg nem fogadja az ékezetes karaktereket - erről nem is tudtam.
Shell még lehet a felsoroltakon kívül a csh is, az is alapból van.
Szóval hiába ünnepnap, akkor is lehet újat tanulni :)
- A hozzászóláshoz be kell jelentkezni
Köszönöm! Ez volt a megoldás. Shell-t cserélek.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Lehet örülni. Olvasgatom a 11-es verzió kiadási megjegyzését(*), és mit ad isten ez szerepel az userland ágban:
"The libedit library has been updated to include UTF-8 support, adding UTF-8 support to the sh(1) shell."
Azt egyelőre nem tudom, hogy ez visszaportol[tj]ák-e a 10-es ágba, de legkésőbb akkor a kb 2016 augusztusában megjelenő 11.0-ban már menni fog az ékezetes karakter a /bin/sh-ban is.
(*) még nem jelent meg, de ezt a doksit szokták frissítgetni, így időnként lehet látni, hogy mi várható.
- A hozzászóláshoz be kell jelentkezni