LINUX.ORG.RU

По теме:

┌[\e[0;32m\u\e[0m] [\h]:\[\e[0;32;49m\]\w\[\e[0m \n└>
Почему? Удобно, стильно, молодёжно :)

Spirit_of_Stallman ★★★
()
\[\033[1;36m\][\t]\[\033[0m\033[1m\033[36m\][\[\033[34m\]\u@\h \[\033[32m\]\w\[\033[36m\]]`errlev=$?; if [ $errlev != 0 ]; then echo \[\e[1m\e[31m\]$errlev\[\e[0m\]; fi`\[\033[1;36m\]>\[\033[0m\]
AITap ★★★★★
()
% cat ~/.oh-my-zsh/custom/smth.zsh-theme

USER_PROMPT='%{$fg[green]%}%c $(git_prompt_info)%{$fg_bold[green]%}%#'
ROOT_PROMPT='%{$fg[red]%}%c $(git_prompt_info)%{$fg_bold[red]%}%#'
PROMPT="%(!.${ROOT_PROMPT}.${USER_PROMPT})%{$reset_color%} "

$(git_prompt_info)%{$fg_bold[blue]%}%#%{$reset_color%} '

ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[yellow]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}%{$fg_bold[blue]%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*"
ZSH_THEME_GIT_PROMPT_CLEAN=""

ZSH_THEME_TERM_TITLE_IDLE="%c"
anonymous
()

у кого чё

Это:

function precmd {
	# Set color variables
	setopt extended_glob prompt_subst

	autoload colors zsh/terminfo
	if [[ "$terminfo[colors]" -ge 8 ]]; then
		colors
	fi
	for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
		eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
		eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
		(( count = $count + 1 ))
	done
	PR_NO_COLOR="%{$terminfo[sgr0]%}"
	
	PR_HBAR="─"
	#PR_HBAR="—"
	PR_ULCORNER="┌"
	PR_LLCORNER="└"
	#PR_ULCORNER="├"
	#PR_LLCORNER="├"
	PR_LRCORNER="┘"
	PR_URCORNER="┐"

#	typeset -A altchar
#	set -A altchar ${(s..)terminfo[acsc]}
#	PR_SET_CHARSET="%{$terminfo[enacs]%}"
#	PR_SHIFT_IN="%{$terminfo[smacs]%}"
#	PR_SHIFT_OUT="%{$terminfo[rmacs]%}"
#	PR_HBAR=${altchar[q]:--}
#	PR_ULCORNER=${altchar[l]:--}
#	PR_LLCORNER=${altchar[m]:--}
#	PR_LRCORNER=${altchar[j]:--}
#	PR_URCORNER=${altchar[k]:--}

	# Set the width of terminal
	(( TERMWIDTH = ${COLUMNS} - 1 ))

	# Truncate the path of current directory if it's too long
	PR_FILLBAR=""
	PR_PWDLEN=""

	promptsize=${#${(%):---(%n@%m:%l)---()--}}
	pwdsize=${#${(%):-%~}}

	if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
		(( PR_PWDLEN = $TERMWIDTH - $promptsize ))
	else
		PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize+$pwdsize)))..${PR_HBAR}.)}"
	fi
	print -Pn "\e]0;%n@%m:%~\a"
}

PROMPT=$'$PR_SET_CHARSET$PR_YELLOW$PR_ULCORNER$PR_HBAR($PR_BLUE%(!.${PR_RED}root.%n)$PR_BLUE@%m:%l$PR_YELLOW)$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR($PR_BLUE%$PR_PWDLEN<...<%~%<<$PR_YELLOW)$PR_HBAR>\n$PR_LLCORNER$PR_HBAR(%(?..$PR_RED%?$PR_YELLOW:)$PR_BLUE%D{%H:%M}$PR_YELLOW)$PR_HBAR$PR_HBAR$PR_NO_COLOR '

# Right prompt
#RPROMPT=' $PR_YELLOW$PR_HBAR$PR_HBAR($PR_BLUE%D{%a,%b%d}$PR_YELLOW)$PR_HBAR$PR_LRCORNER$PR_NO_COLOR'

# Multi-line prompt
PS2='$PR_YELLOW$PR_HBAR$PR_HBAR($PR_BLUE%_$PR_YELLOW)$PR_HBAR$PR_HBAR$PR_NO_COLOR '

и почему?

Удобно.

gentoo_root ★★★★★
()

Стандарт, и никаких изменений

if [ "$color_prompt" = yes ]; then
     PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
 else
     PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
 fi

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

упс. $(git_prompt_info)%{$fg_bold[blue]%}%#%{$reset_color%} ' из закомментированной фижни, забыл удалить.

Выглядит как-то так http://ompldr.org/vZWV0ZQ/ps.png

anonymous
()
PS1="${debian_chroot:+($debian_chroot)}[\A][${BGREEN}\u${NORMAL}]@[${BYELLOW}\h${NORMAL}] :${BBLUE} \W ${NORMAL}> "
Nervous ★★★★★
()
Ответ на: комментарий от zolden

У баша не такие удобные комплиты как у зш.

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

Куча людей гонится за многострочным промптом и никто даже не удосуживается исправить чудеса просходящие в консоли происходящие при ресайзе терминала.
Давай, будь мужиком запости скрины до и после ресайза.
Наверно уезжающий чёрт знает куда промпт тоже «удобно»?

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

У меня нет никаких серваков. Но на других, «неосновных» машинах обычно добавлен их хостнейм, потому что часто возникала путаница. Ну и вообще, в заголовке XTerm у меня выводится [user@host: ~] :)

GotF ★★★★★
()

export PS1='\[\e[4;36m\]\D{%d-%m-%y} \[\e[4;35m\]\t \[\e[4;33m\]\u@\H \[\e[4;34m\]$PWD\n\[\e[0;32m\]\$\[\e[0;39;40m\] '

так нравится...

erfea ★★★★★
()

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

ms-dos32
()
Ответ на: комментарий от zolden

Ну, например, adam2 из zsh нормально держится, как и мой порт оного на bash.

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

при ресайзе терминала.

И часто ты так делаешь? Лично я не ресайзю терминал почти никогда — он всегда занимает настолько много места, насколько может себе позволить. В случае GUI окно по дефолту максимизировано.

Может, перечислишь юзкейсы, при которых полезен ресайз терминала? Пока может прийти в голову только необходимость видеть ещё одно окно, но в этом случае я обычно лёгким движением руки по тачпаду делаю терминал полупрозрачным. В случае, если видеть 2 окна надо длительное время, гораздо удобнее уменьшить высоту терминала, чем ширину (поскольку второе окно — браузер или пдфка, а им очень не нравится, когда их ширина около 640, особенно первому). А при изменении высоты никаких спецэффектов с промптом не возникает.

Поэтому лично я не испытываю никаких трудностей при моём стиле работы. Зато в том же баше, если в промпте стоит \w, а текущий каталог слишком длинный, то промпт разнесёт ещё покруче, даже без ресайза окна по горизонтали, а у меня хотя бы ограничитель стоит.

запости скрины

Не хочу, у меня там дефолтная убунта, которую я только что поставил.

никто даже не удосуживается исправить чудеса

Если знаешь, как заставить zsh при получении SIGWINCH выполнить функцию из zshrc, то возьми и расскажи, чего впустую болтать? Если так переживаешь о проблеме, то почему до сих пор никто не видел твоих патчей на zsh, в которых по SIGWINCH производится стирание старого промпта и перерисовка?

Куча людей гонится за многострочным промптом

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

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

я поспорил кое с кем, что получу в ответ нечто в стиле 'не нужно/я же не использую/итд' и выиграл!
Я, пожалуй, лучше попрошу GotF поделиться его вариантом, тебе то это всё равно неинтересно.
На самом деле минимум одно решение есть, его минут за 5-15 реально загуглить

/пользователь двустрочного промпта в zsh/

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

я же не использую

Очевидно, что нормальный человек будет пользоваться тем, что удобно ему, а не тем, что ему неудобно. Тут надо выбирать то, что больше нужно: или двухстрочный промпт, или ресайз по ширине. Мне больше нужно первое.

Я, пожалуй, лучше попрошу GotF поделиться его вариантом

Удачи, я у себя его проверил — он также не работает так, как тебе нравится.

autoload -U promptinit
autoload -U prompt
promptinit
prompt adam2

тебе то это всё равно неинтересно.

Ошибаешься, а это означает, что мой ответ ты не читал полностью, потому что тебе он неинтересен, тебе интересно было прочитать или не прочитать там «не нужно».

На самом деле минимум одно решение есть, его минут за 5-15 реально загуглить

Это там, где первую строку в precmd запихать? Против ресайза по ширине не поможет.

gentoo_root ★★★★★
()
[ -z "$PS1" ] && return
    export PS1="\[$color_C\]┌─┤\$(smiley)\[$color_C\]├─\[$color_R\]\u\[$color_C\]:\H:${SSH_TTY}@${SHLVL}@\j \[$color_P\]\w\[$color_C\] $(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files, $(/bin/ls -lah | /usr/bin/head -n 1)\n└■  \[$color_N\]"
    export PS1="\[$color_G\]\u\[${color_s}${color_F}\] #\[$color_N\] "

http://ompldr.org/vZWV3NQ/lor.png

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

Удачи, я у себя его проверил — он также не работает так, как тебе нравится.

А и правда, я соврал по забывчивости. Динамически размер не меняется, только после нажатия Return.

GotF ★★★★★
()

стандартный, гентушный. Мне хватает

pinkbyte@phantom ~ $ echo $PS1
\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]
Pinkbyte ★★★★★
()
Ответ на: комментарий от gentoo_root

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

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

исправить чудеса просходящие в консоли происходящие при ресайзе терминала.

- зачем его ресайзить?

Наверно уезжающий чёрт знает куда промпт тоже «удобно»?

поразделял экран в stumpwm, ничего никуда не уезжает

пруфов не будет, лень

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

куда ж ты болезный

кто бы говорил

в калашный ряд

любителей недошелла?

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

мне чаще всего приходится что-то делать из под винды через путти

на винфак

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

время переустановить шиндовс виндопроблемы

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

исправить чудеса просходящие в консоли происходящие при ресайзе терминала.

- зачем его ресайзить?

задай этот вопрос своему сердцу, брат

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

Я ненавижу тмуксы в тмуксе.
Посему - пользую вкладки терминала, где у каждого сервака свой тмукс.
Да и даже так - каждый раз хостнейм тмукса не смотрю, а промт - всегда перед глазами, в отличие от статусбара тмукса :)
ЗЫ: старался побольше раз упомянуть тмукс :)

Spirit_of_Stallman ★★★
()

Очередная тупая школьная ЖЖ-шечка в техразделе7

anonymous
()

разными цветами расскрашиваю на разных тачках чтобы не путаться (одного хостнейма в prompt мне недостаточно. Задумываюсь о molly-guard ещё.

true_admin ★★★★★
()
PS1="%(!.${fg_lred}#.${fg_lgreen}$) ${at_normal}"
RPS1="%~"

zsh

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

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

А если, например, в одном терминале man, в другом набираешь, то как читать через полупрозрачное окно?

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

А если, например, в одном терминале man, в другом набираешь, то как читать через полупрозрачное окно?

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

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