sergio -> debian-russian@lists.debian.org  @ Sun, 05 Oct 2008 22:45:58 +0400:

 >>  >>> Подскажите какую-нить "запускалку" программ, типа такой, которая
 >>  >>> выскакивает в kde/gnome/xfce по alt-f2.
 >>  >> urxvt. Одна из лучших "запускалок" :)
 >>
 >>  s> &|exit в конец каждой комманды ты мне будешь добавлять?
 >>
 >> Мне zsh добавляет.  Но не без глючка - если сразу из поиска по Ctrl-R
 >> нажать Enter, то не добавляет.  Если интересно, могу показать решение.
 >>
 s> интересно.

Магический тикловый скрипт xrsh (здесь не приводится для упрощения - он
есть быть суть отдельная песня), будучи вызван определенным образом,
выполняет команду

xterm -geometry 80x8 -title [EMAIL PROTECTED] -e zsh -i -t -s auto-bg

Что, соответственно, приводит в zsh к установке опций INTERACTIVE,
SINGLE_COMMAND и SHIN_STDIN.  Последняя, если внимательно читать ман,
приводит к тому, что при выполнении .zshrc $1=auto-bg.

Далее, в .zshrc имеется следующий кусок кода:

if [[ -o interactive && -o single_command ]]; then
        if [[ "$1" == auto-bg ]]; then
                function auto-bg {
                        case "$BUFFER" in
                        {*}\ \&\|) ;;
                        \ *) BUFFER=" { $BUFFER } &|" ;;
                        *) print -s $BUFFER; BUFFER=" { $BUFFER } &|" ;;
                        esac
                        zle .accept-line
                }
                zle -N accept-line auto-bg
                shift
        fi
        [[ -z "$1" ]] || print -z "$* "
fi

It's magic, я в курсе.  Идея подсказана в рассылке zsh-users.  Нет, _я_
понимаю, как оно работает.  Но сам бы не догадался воспользоваться этим
механизмом.  

Глюк полученного результата я уже описывал, workaround догадайся
самостоятельно.

На самом деле, у меня там бывает еще auto-wait (то же, но команда в
фореграунде, шелл дожидается ее завершения, и спрашивает, закрываться
или не стоит).  Но оно как-то не прижилось.  А этот вот кусок
используется.

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: [EMAIL PROTECTED]

Штатными средствами среды я могу пририсовать "документу" оглавление,
обсуждение, усы и бороду
        (c) Бо Беркгаут


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to