Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Resolved: Sourcing .zshrc from .zprofile causes problems

I figured it out.  It was because I had

zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}


export LS_COLORS='di=36:fi=0:ln=35:pi=93:so=32:bd=34;46:cd=34;103:or=31:mi=0: ex=31'

in my .zshrc file. Silly me. I know this is a bit off topic, but is the 'export' necessary/correct in the LS_COLORS definition?


On Aug 13, 2004, at 12:11 AM, Bart Schaefer wrote:

On Thu, 12 Aug 2004, lists wrote:

if [[ -f ~/.zshrc ]]; then . ~/.zshrc ; fi

in my .zprofile

That shouldn't be necessary.  The ~/.zshrc is read by all interactive
shells, and the ~/.zprofile by all login shells. Although it's possible
to create a non-interactive login shell, it's rather unlikely.

So the problem here ...

.zshrc:unalias:181: no such hash table element: run-help

... is that the ~/.zshrc is read _twice_, once when you source it and then
again when zsh normally would read it, and the second time run-help has
already been unaliased.

The error message goes away when in don't source .zshrc in my .zprofile.


However, at that point the following zstyle from my .zshrc file

zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

doesn't work

There must be some kind of order-dependency involved. The normal sequence of file reads (where you fail to see colored listings) would be (ignoring
zshenv and zlogin for now)

To make colored listings work, you've changed the order to
	~/.zprofile + ~/.zshrc

When you "exec zsh" chances are it's no longer a login shell, so the two zprofile files are not sourced in that case ... since coloring works then, that would tend to indicate that something in the ~/.zprofile is causing the problem, and it would have to be something that comes after the point
where you inserted the sourcing of ~/.zshrc.

Does ~/.zprofile perhaps change the value of $LS_COLORS ?

Messages sorted by: Reverse Date, Date, Thread, Author