![Configuração .zshrc, a ordem importa?](https://rvso.com/image/178464/Configura%C3%A7%C3%A3o%20.zshrc%2C%20a%20ordem%20importa%3F.png)
Agora que zsh é o terminal padrão para Mac, decidi tentar replicar minhas preferências .bashrc para .zshrc.
Tenho a maior parte do que preciso, mas ainda tenho algumas pequenas coisas a acrescentar. Eu não sabia nada sobre como criar um arquivo .zshrc, então pesquisei bastante no Google.
Eu criei isso, mas antes de tentar organizá-lo em algo um pouco mais limpo, a ordem de alguma dessas coisas importa?
Lamento que seja realmente uma bagunça feia.
#################
# Output Prompt #
#################
NEWLINE=$'\n'
PROMPT="%F{cyan}%n%f@%F{green}%m%f %F{011}%~%f \$vcs_info_msg_0_ ${NEWLINE}%% "
# RPROMPT=\$vcs_info_msg_0_
###########
# ALIASES #
###########
alias ls='ls -GFh'
# TODO: DO MORE RESEARCH ON THESE
# alias l='colorls --group-directories-first --almost-all'
# alias ll='colorls --group-directories-first --almost-all --long' # detailed list view
# case insensitive path-completion from - https://scriptingosx.com/2019/07/moving-to-zsh-part-5-completions/
# zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'
# partial completion suggestions - from https://scriptingosx.com/2019/07/moving-to-zsh-part-5-completions/
# zstyle ':completion:*' list-suffixes
# zstyle ':completion:*' expand prefix suffix
# E-TODO
export LSCOLORS=gxfxbxdxcxegedabagacad
# The following lines were added by compinstall
zstyle ':completion:*' completer _complete _ignored _approximate
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]}'
zstyle :compinstall filename '/Users/ryan/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs
zstyle ':completion:*:*:cdr:*:*' menu selection
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
setopt HIST_IGNORE_DUPS # Prevents duplicate commands from being saved the command line history
setopt HIST_IGNORE_SPACE # Remove command lines from the history when the first character is a space
setopt HIST_REDUCE_BLANKS # Remove superfolus blanks from each command being added to the history list
zstyle ':vcs_info:git:*' formats '%F{196}(%b)%f'
zstyle ':vcs_info:*' enable git
Responder1
Depende, às vezes eles fazem como Devon explicou acima, mas se eles não têm nada a ver um com o outro, então não, eles não importam. Por exemplo, se você definir vários aliases que não estão sendo usados no seu .zshrc ou não dependem de nada no seu .zshrc, você poderá colocá-los onde quiser. Se eles fornecerem algum tipo de saída para o terminal, a saída aparecerá na ordem em que estão em seu arquivo .zshrc.
Responder2
zsh executa os comandos em você .zshrc
como se você os tivesse digitado em seu terminal. A ordem é importante, por exemplo, você não pode usar variáveis antes de defini-las.