• Medlem
  • Stockholm
  • 2008-01-24 23:49

Hallå hallå, håller på å leker med min prompt i ZSH och har stött på ett problem.
Går det att få zsh att ladda promptens bredd när fönstret ändrar bredd?

Min kod ser ut som följande:

# Färger
WHITE_START=$(echo '%{\033[0m%}%')
GREEN_START=$(echo '%{\033[32m%}%')
RED_START=$(echo '%{\033[31m%}%')

# Terminalprompten
MY_WIDTH=$(( $COLUMNS - 15 ))
CUT_WIDTH=$(( $MY_WIDTH + 1 ))
LONG_LINE=$((repeat $MY_WIDTH; echo -n '━') | cut -c 1-$CUT_WIDTH)
DATE_AND_LINE=$(echo $GREEN_START '┏ ' $RED_START '%D' $GREEN_START $LONG_LINE)
TIME_AND_BRACKETS=$(echo $GREEN_START '[' $RED_START '%T' $GREEN_START ])
BRACKED_LINEBREAK=$(echo '┓\n┗')
PATH_AND_BRACKETS=$(echo $GREEN_START '[' $RED_START '%d' $GREEN_START ']┛'$WHITE_START)
NAME_AND_INPUT_MARKER=$(echo $RED_START '%n' $GREEN_START '> ')

PROMPT=$(echo $DATE_AND_LINE $BRACKED_LINEBREAK $TIME_AND_BRACKETS $NAME_AND_INPUT_MARKER)
RPS1=$(echo $PATH_AND_BRACKETS)

Och det är med andra ord $MY_WIDTH jag vill att ZSH skall uppdatera när antalet kolumner förändras.

Skärmdumpar som visar vad som händer när jag ökar bredden medföljer.

EDIT: Har städat koden för läsbarhetens skull.

Senast redigerat 2008-01-28 22:15