Как предотвратить крах приглашения zsh

Я написал свой собственный zsh (на самом деле, я использую zsh с oh-my-zsh, если это имеет отношение к теме), его код выглядит следующим образом:

PROMPT="%{$fg[green]%n%}@%{%m%}:%{$fg[yellow]%~%} %{$fg[red]%#$reset_color%} "

Все в порядке, кроме единственной проблемы: когда я использую автозаполнение (нажмите Tab), подсказка сворачивается до первых нескольких символов.

Вот скриншот, свернутая подсказка находится в левом окне терминала, а обычная подсказка — в правом окне.

http://i.imgur.com/a1iWHdA.png


person Valera Antonov    schedule 03.10.2014    source источник


Ответы (1)


Я не уверен, получилось ли у меня именно так, как вы хотели, но попробуйте для начала:

local gr=${1:-'green'}
local bl=${2:-'blue'}
local re=${3:-'red'}
local wh=${4:-'white'}
local cy=${5:-'cyan'}
local ye=${6:-'yellow'}

export PROMPT="%F{$gr}%n%f@%m:%F{$ye}%~%f %F{$re}%#%f "

Я не уверен, что именно вы сделали не так, но похоже, что эти фигурные скобки испортили ваше приглашение. В подходе к настройке подсказок используется %F{$ID}, где ID — один из идентификаторов, которые я определил для запуска раскраски, и %f для остановки раскраски. Вы можете сделать текст полужирным, используя %B (удалить полужирный, используя %b).

person elemakil    schedule 07.10.2014