zsh: что-то не так с utf8
ZaWertun 27 октября, 2008 - 22:08
Был у меня .bashrc вот такого содержания:
...
function prompt_command {
history -a
echo $PWD | grep "^$HOME" >/dev/null 2>&1
if [ $? -eq 0 ]; then
local CURRDIR=`echo $PWD | awk -F$HOME '{print $2}'`
newPWD="~$CURRDIR"
elif [ "$PWD" = "$HOME" ]; then
newPWD="~"
else
newPWD="$PWD"
fi
local hostnam=$(hostname -s)
local usernam=$(whoami)
local temp="${usernam}@${hostnam}${newPWD}"
let local fillsize=${COLUMNS}-${#temp}
local statfill=" "
unset fill
fill="${statfill:0:${fillsize}}"
echo "$(color lt$ucolor)${usernam}$(color $ucolor)@$(color lt$ucolor)${hostnam}${fill}$(color ltblue)${newPWD}$(color off)"
}
PROMPT_COMMAND=prompt_command
...
И приглашение в bash'е выглядело вот так:
http://link.imgshare.us/0qpNHb
Позднее решил переползти на zsh, вполне понравилось. Решил сделать приглашение как в bash'е, вот таким кодом:
function precmd {
local temp="${(%):-%n}@${(%):-%m}${(%):-%d}"
let local fillsize=${COLUMNS}-${#temp}
local statfill=" "
unset fill
fill="${statfill[1,${fillsize}]}"
print -P "$(color lt$ucolor)${(%):-%n}$(color $ucolor)@$(color lt$ucolor)${(%):-%m}${fill}$(color ltblue)${(%):-%~}$(color off)"
}
Вот результат:
http://link.imgshare.us/0qpN3S
Собственно вопрос:
Как добится нормального отображения русского языка ?
Может где ошибка в precmd ?
P.S. локаль ru_RU.UTF-8, zsh v.4.3.6
»
- Для комментирования войдите или зарегистрируйтесь

Стандартное приглашение adam2
Стандартное приглашение adam2 (
% prompt adam2) весьма похоже (если я правильно помню сгинувшие картинки) и с русскими путями работает хорошо. Предлагаю посмотреть в его код, бо сам не силён (-:ЕТекстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
да я уже разобрался =)) вот
да я уже разобрался =))
вот как вышло:
function precmd { local newPWD="$(print -D $PWD)" local temp="${(%):-%n}@${(%):-%m}${newPWD}" let local fillsize=${COLUMNS}-${#temp} local statfill=" " unset fill fill="${statfill[1,${fillsize}]}" print -P "$(color lt$ucolor)${(%):-%n}$(color $ucolor)@$(color lt$ucolor)${(%):-%m}${fill}$(color ltblue)${newPWD}$(color off)" }