LINUX.ORG.RU

Поделитесь кастомными приглашениями комстроки

 


3

1

Моё (https://gist.github.com/andrey-utkin/c5c2bccfe7d5be2178a1) почему-то в последнее время сбоит - иногда после выхода из less, git log и т. п. не видно вводимых символов. Подозреваю, что у меня что-то неправильно, и хотел бы переработать своё приглашение на базе стабильно работающих.

Видел много разноцветных и многострочных, но ни разу ничего не заинтересовало, в основном свистоперделки какие-то… Использую такое (zsh):

PROMPT='[%T] %~ %# '

Psych218 ★★★★★
()

%~ — (ну или что там вместо %~ отображает текущую папку и ~ если текущая папка это хомяк)

минимализм во все поля.

sudopacman ★★★★★
()
PROMPT='%F{%(!.1.7)}%n@%f%F{3}%m%f %B%F{4}%5~%f%b $(__git_ps1 "%%B%%F{2}%s%%f%%b ")%(!.#./) '
RPROMPT='%(1j.jobs:%j.)'
surefire ★★★
()
PROMPT=%(0?..%B%F{red}\ %?%b%f)\ %B%F{black}'%20<…<'%~'%<<'%f%b\ %B%(!.%F{red}'#'.%F{cyan}%%)%b%f\ 
PROMPT2=%B%F{cyan}\	:%b%f\ 
PROMPT3=$PROMPT2
PROMPT4=$PROMPT3
if [[ ! -z $MC_SID ]] { PROMPT=%B%K{blue}[MC]%b%k\ $PROMPT }
if [[ ! -z $RANGER_LEVEL ]] { PROMPT=%B%K{green}[Ranger]%b%k$PROMPT }
if [[ ! -z $SSH_CLIENT ]] { PROMPT=%B%F{green}%m%b%f$PROMPT; }
anonymous
()
export HISTCONTROL=ignoredups:erasedups
export HISTSIZE=100000
export HISTFILESIZE=100000

shopt -s histappend

PS1='`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi` \[\033[1;34m\]\u@\h\[\033[0;37m\] [\[\033[1;34m\]\w\[\033[0;37m\]] \[\033[1;36m\]\$ \[\033[0m\]'
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
alex_the_v ★★★
()
export HISTTIMEFORMAT="%h %d %H:%M:%S "
export HISTSIZE=10000
export HISTFILESIZE=10000
shopt -s histappend
shopt -s cmdhist
PROMPT_COMMAND='history -a'
PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[0;37m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[0m\]'
Jarvis
()
function update_ps1 {
    local B="\[\033[1m\]"
    local X="\[\033[m\]"
    PS1="\n$B[\$?]$X \u@ $B[\w]\n\W\$$X "
}
export PROMPT_COMMAND=update_ps1


[0] Artur@ [~/Downloads/Torrents]
Torrents$ _

\n и жирным (у меня цветом) для визуального разделения выхлопов, курсор на новой строке на случай глубоких путей, чтобы основная строка ввода не засиралась. После @ был еще \h (или \H), но со временем пропал.

arturpub ★★
()

Делюсь, не жалко:

\h:\W \u\$
Или
\u:\!\$
Большего и не надо.

beastie ★★★★★
()

Внешний вид: http://storage1.static.itmages.ru/i/16/0306/h_1457249266_3933300_fe10f02d85.png

Код:

if [ "$EUID" -eq 0 ]; then
	promptname=$'%{\e[38;5;9m%}'
	prompttext=$'%{\e[38;5;7m%}'
	prompthost=$'%{\e[38;5;9m%}'
	promptdir=$'%{\e[38;5;10m%}'
	prompttime=$'%{\e[38;5;9m%}'
	promptnum=$'%{\e[38;5;1m%}'
	promptprig='#'
else
	promptname=$'%{\e[38;5;14m%}'
	prompttext=$'%{\e[38;5;7m%}'
	prompthost=$'%{\e[38;5;14m%}'
	promptdir=$'%{\e[38;5;10m%}'
	prompttime=$'%{\e[38;5;14m%}'
	promptnum=$'%{\e[38;5;6m%}'
	promptprig='$'
fi

export PROMPT="${promptname}┌─%n${prompttext}@${prompthost}%m ${promptdir}%~
${promptname}└┤${promptprig} ${prompttext}"

export RPROMPT="${promptnum}%! ${prompttime}%* ${promptnum}%y${prompttext}"
najlus ★★★★★
()

Использую zsh с темой rkj-repos (ссылка на картинку). Плюсы: все включено, при этом сама строка никуда не уезжает с увеличением $PWD. Минусы: занимает две строки, хотя по мне, лучше уж так, чем промпт с $PWD на пол-экрана.

iVS ★★★★★
()
Ответ на: комментарий от najlus

И как, удобно кучу команд вводить в одной директории и видеть каждой второй строчкой где находишься?

Deleted
()
Ответ на: комментарий от Deleted

Знаток тайм-менеджмента?

Не, гентушник. Чтобы знать, когда хромиум закончит компиляться.

iVS ★★★★★
()
Ответ на: комментарий от Deleted

И как, удобно кучу команд вводить в одной директории и видеть каждой второй строчкой где находишься?

Вполне. Уж куда удобнее длиннющего приглашения перед командой или отсутствия информации о текущем местонахождении (про pwd знаю, но это надо ещё вводить, что лень и не всегда удобно).

najlus ★★★★★
()
Ответ на: комментарий от iVS

лучше уж так, чем промпт с $PWD на пол-экрана.

Как будто кроме «промпт с $PWD на пол-экрана» и «занимает две строки» других вариантов нет.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Разве плохо, что все команды всегда начинаются с одной позиции? Мне, как человеку, привыкшему читать слева направо, это очень удобно. Выше приводили башевский промпт на две строки, по мне — очень удобен. Разве что, когда я пробовал в баше двухстрочный промпт, наблюдались поломки форматирования, у zsh с этим полный порядок.

По поводу сокращения промпта, скажем, до последней директории, это порой нифига не информативно.

iVS ★★★★★
()

Стандартный дебиана с добавлением бранчи гита.

Deleted
()
Ответ на: комментарий от t184256

Если перейти на гитхаб-проект из коммента выше с однострочным промптом, там на картинке прекрасно видно, как съезжает левый край ввода команды. Верх неудобства.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 1)
Ответ на: комментарий от najlus

Люблю когда на две строки, у меня почти так же, только ещё привинчено цветное отображение кода выхода последней команды, чтобы быстро евалить различные [ и [[ (я у мамы программист башом), как-то:

last_command() {
    local ret=$1
    local prompt_history="$(history 1)"
    prompt_history=${prompt_history:7}

    if [[ $ret -eq 0 ]]; then
        echo -ne $COLOR_GREEN "$prompt_history" $COLOR_OFF
    else
        echo -ne $COLOR_RED "$prompt_history (rc = $ret)" $COLOR_OFF
    fi
}

PS1="бла бла бла всякое разное"'$(last_command $?)'

d_a ★★★★★
()
Последнее исправление: d_a (всего исправлений: 1)
Ответ на: комментарий от iVS

Есть. Две строки едят лишнюю строку, я лучше, какой ужас, буду взглядом искать конец приглашения, чем каждую вторую строку отводить под разжиревшее приглашение. Просто это настолько очевидно плохо, что и озвучивать этот факт как-то неловко. «Ну как бы да, сударь, у меня тоже все неидеально, но бревно в глазу у Вас».

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Что дает вам больше строк? Видеть stdout проги, как правило, не мешает: там и так много строк, чтобы заботиться об одной лишней. Предыдущие введенные команды? Зачем, когда есть Ctrl+R? Перемещаться по директориям: pushd и su -. Действительно, бревна в глазу нет.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Твой же пример станет вдвое выше и каждая вторая строка будет и не командой, и не вводом, и не выводом. Если захочется читать происходившее ранее, то это будет болью куда большей, чем иногда смещающийся конец приглашения. А если ты продолжишь настаивать на том, что читать происходившее ранее никому не надо, то инвалидируется твой единственный аргумент против.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Стандартная консоль включает 24 строки (а сейчас даже больше). Последних команд пять туда влезет запросто, а больше и не надо.

А если ты продолжишь настаивать на том, что читать происходившее ранее никому не надо, то инвалидируется твой единственный аргумент против.

Не инвалидируется, помимо того, чтобы читать, нужно еще и писать. Вводить новую команду быстрее — не нужно глазами искать начало ввода.

iVS ★★★★★
()
Ответ на: комментарий от Legioner

Текущий каталог отображается в заголовке Tab-а.

История перемещения по директориям порой ой как нужна.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Мне практически никогда не нужна. Если вдруг нужна — использую pushd/popd. Ну и в принципе можно при cd писать в какой-нибудь кольцевой буффер и отдельной командой выводить, по идее несложно делается скриптами, это будет удобней, чем листать терминал.

Legioner ★★★★★
()
Ответ на: комментарий от iVS

Последних команд пять туда влезет запросто, а больше и не надо.

Говоришь прям как дизайнеры GTK3.

Не инвалидируется, помимо того, чтобы читать, нужно еще и писать. Вводить новую команду быстрее — не нужно глазами искать начало ввода.

Инвалидируется как минимум по одной причине. Я тебя удивлю, но когда гуманоиды печатают на клавиатуре и на экране появляются символы, поиск места, где они появляются, абсолютно не зависит от паттернов окружающих это место символов и происходит аппаратно в силу особенностей зрения. Передайте отделу исследования углеводородных форм жизни, что им нужно быть повнимательнее.

t184256 ★★★★★
()
Ответ на: комментарий от Legioner

Ну и в принципе можно при cd писать в какой-нибудь кольцевой буффер

Есть su - для двух директорий.

iVS ★★★★★
()
Ответ на: комментарий от t184256

поиск места, где они появляются, абсолютно не зависит от паттернов окружающих это место символов и происходит аппаратно в силу особенностей зрения.

Сорри за оффтоп. Учи мат. часть про устройство зрения. Наш глаз настолько несовершенен, что обладает очень малым полем зрения без искажений. А всё, что ты видишь, формируется из постоянного перемещения фокуса и составления из фрагментов целостной картинки мозгом. Никакого целостного восприятия, чтобы ты в один момент видел весь экран, нет. Это иллюзия. И пожалуйста, не выдавай за верное свои иллюзии.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Учил матчасть, сдавал матчасть, знаю и про то, что фокус двигается, и про то, что поле зрения и искажения в нашей ситуации абсолютно не при чем. И если ты будешь отрицать, что в итоге положение изменяющегося фрагмента картинки на мониторе не отлавливается мозгом без анализа букв вокруг, то я совершенно правомерно подниму тебя насмех.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

И если ты будешь отрицать, что в итоге положение изменяющегося фрагмента картинки на мониторе не отлавливается мозгом без анализа букв вокруг, то я совершенно правомерно подниму тебя насмех.

Следует ли отсюда, что если ты будешь смотреть влево, а буквы появятся справа, то их распознаешь так же быстро, как и в случае, когда смотришь сразу практически туда, где они появятся?

iVS ★★★★★
()
Ответ на: комментарий от iVS

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

t184256 ★★★★★
()
Ответ на: комментарий от sudopacman

$, иногда красного цвета(когда предыдущая команда плохо завершилась) — это минимализм. а всё, что pwd показывает — уже нет

f1u77y ★★★★
()
Ответ на: комментарий от t184256

Понятия неудобства/удобства субъективны, а тут какая-то попытка возвести их в абсолют. Кому-то и на табуретке сидеть удобнее, чем в кресле. Я думал, что это и так очевидно.

iVS ★★★★★
()
Ответ на: комментарий от f1u77y

ну без pwd неудобно. Ящитаю жертвовать действительно нужным функционалом ради *минимализма* не стоит. А менять цвет $ как и сам символ $ это как раз не нужно, потому что когда команда плохо завершилась это и так видно. $ не нужно потому что лично я под рутом в консоли сижу раз в 100 лет, а если и сижу, то это сразу понятно, потому что там bash с дефолтным prompt'ом (именно потому что я редко туда захожу и рутовый prompt настраивать лень).

sudopacman ★★★★★
()
13 апреля 2016 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.