Először csak rendes UTF-8 támogatást akartam terminálban, hogy egy-egy ő-t leütve ne kapjak kérdőjeleket és két két sortörést, de aztán vérszemet kaptam. Íme az eljárás lépésről lépésre.
Utfnyolcasítás
A *.profile*-ba, ha akad, aki nem ismeri: a home folderben található rejtett fájl, a következő **két** sor kerül:
export LC_CTYPE=hu_HU.UTF-8
export LC_ALL=hu_HU.UTF-8ha magyar nyelvű basht szeretnénk, akkor pluszba még egy ilyen is. (De amúgy nem szeretnénk, rémisztőek a magyar hibaüzenetek.)
export LANG=hu_HU.UTF-8
A .inputrc-be, ugyanott van mint a .profile, négy sor kerül:
set meta-flag on
set input-meta on
set output-meta on
set convert-meta offde ha már úgyis ott vagyunk, akkor még egy sort érdemes hozzáadni:
set completion-ignore-case on
ezzel megkérjük a rendszert, hogy a tab completionnél (parancskiegészítés?) ne izguljon a shell a kis- és a nagybetűk különbségén. A bash mégse Édes Anyanyelvünk, szabad a kisbetű.
Az [igazán hozzáértők szerint][1] még a ~/.MacOSX/environment.plist fájban fel kell venni egy LC_CTYPE keyt hu_HU.UTF-8 értékkel. Erre adta nekünk az isten a Property List Editor programot a devtools részeként. Igaz, nekem enélkül is működött rendesen az UTF-8, öröm volt nézni.
Új bash
Innentől jönnek az igazából nem túl fontos dolgok, amiket kizárólag a köhögéscsillapító tea hatására követtem el.
Új bash és coreutils - ha már lúd - beszerzése. Fent van finken a 3.0.2-es bash, macportson meg a még eggyel újabb is, pillanatok alatt leszedi a gép. A pillanatok csak akkor nyúlnak meg kicsit, ha nem kérjük meg a finket, hogy bináris csomagot szedjen le. Egyszer ez is véget ér, mint a lázas ifjúság meg a csillagkapu.
A */etc/shells* fájlba fel kell venni az új bashunkat a (fink esetében) következő elérési úttal: */sw/bin/bash*. Macportsszal pedig <del>azt hiszem */opt/bin/bash* lenne, de mérget nem veszek rá.</del> */opt/local/bash*.
Most már be lehet állítani, hogy az új bash legyen az alapértelmezett shellünk. Ezt vagy a Netinfo Manager.app-ban tehetjük meg, vagy a
chsh -s /sw/bin/bash
parancs kiadásával.
- Utolsó lépésként még a .profile-ba még át lehet másolni a /etc/bashrc-ből a bash promtra vonatkozó sorokat, mert onnan nem olvassa ki magának.
if [ -n "$PS1" ]; then PS1='\h:\w \u\$ '; fi
Szupi! ez nagyon hasznos! koszi!
+1 sor a .profile-ba, mert LC_ALL nélkül warningokat dobál a fink. Működni működik enélkül is.
/opt/local/ a portsnal a prefix
Köszönet, javítottam.
Az új bash mennyivel tud többet, mint a már benne lévő, érdemes egyáltalán vacakolni a váltással?
Másrészt nekem a .profile-ba meg az .inputrc-be beírandó cuccok a bejegyzésben sortörés nélkül jelennek meg (Safari alatt), gondoltam, szólok…
Nem csak safari alatt volt gond, nem néztem meg, hogy gond nélkül renderelődik-e a html-be ágyazott markdown. User error. Kösz, hogy szóltál.
Komoly okokat nem tudok felhozni, a jobbnak érzett utf támogatáson túl, a váltásra. Igaz, vacakolásnak sem nevezném; maximum öt perc, ha bináris installt választasz.
Egyelőre nálam még bugzik a dolog, pl beírok parancssorba két hosszú ő-t, visszatörlöm őket, aztán ütök egy Enter-t a látszólag üres parancssorra, mire ő:
-bash: ő: command not found
Ezek után indítok a bash-ből egy újabb bash-t, és ott már működik… és nem igazán értem, mert a .profile-t elvileg akkor olvassa be, amikor új terminált indítok, de ha csak új shell-t a már meglévőből, akkor nem. Lehet, hogy tényleg megpróbálom azt a bash frissítést…
Az új verzióban ez már teljesen jó. De gondolom tegnap délután óta már ránéztél.
en a http://www.rift.dk/news.php?item.7.6 alapjan csinaltam, de ahogy elnezem te is azokat a lepeseket csinaltad. viszon nalam meg mindig szar a gnu ls-el is a megjelenites:
tombook:~/test admin$ >éáűőúöüóí; /opt/local/bin/gls e??a??u??o??uouoi?????????? $ echo $LANG $LC_ALL $LC_CTYPE hu_HU.UTF-8 hu_HU.UTF-8 hu_HU.UTF-8 GNU bash, version 3.2.15(1)-release (i386-apple-darwin8.9.1)
az a backspace-elos problema valoban eltunt, amit 1 masik hozzaszolo is irt, meg a screen -U-n belul is jo igy a bash, de ez a coreutils/fileutils-os ls parancs tovabbra is fos. any idea? koszi!
A legújabb bash nekem annó megoldotta a problémát, de azóta friss rendszerre költöztem, és nem frissítettem újra mindent naprakészre. Még tippem sincs sajnos.