init.zsh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #
  2. # Zim initializition
  3. #
  4. autoload -Uz is-at-least
  5. if ! is-at-least 5.2; then
  6. print "ERROR: Zim didn't start. You're using zsh version ${ZSH_VERSION}, and versions < 5.2 are not supported. Update your zsh." >&2
  7. return 1
  8. fi
  9. # Define zim location
  10. (( ! ${+ZIM_HOME} )) && ZIM_HOME="${ZDOTDIR:-${HOME}}/.zim"
  11. # Source user configuration
  12. if [[ -s "${ZDOTDIR:-${HOME}}/.zimrc" ]]; then
  13. source "${ZDOTDIR:-${HOME}}/.zimrc"
  14. fi
  15. load_zim_module() {
  16. local wanted_module
  17. for wanted_module (${zmodules}); do
  18. if [[ -s "${ZIM_HOME}/modules/${wanted_module}/init.zsh" ]]; then
  19. source "${ZIM_HOME}/modules/${wanted_module}/init.zsh"
  20. elif [[ ! -d "${ZIM_HOME}/modules/${wanted_module}" ]]; then
  21. print "No such module \"${wanted_module}\"." >&2
  22. fi
  23. done
  24. }
  25. load_zim_function() {
  26. local function_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)'
  27. local mod_function
  28. # autoload searches fpath for function locations; add enabled module function paths
  29. fpath=(${${zmodules}:+${ZIM_HOME}/modules/${^zmodules}/functions(/FN)} ${fpath})
  30. function {
  31. setopt LOCAL_OPTIONS EXTENDED_GLOB
  32. for mod_function in ${ZIM_HOME}/modules/${^zmodules}/functions/${~function_glob}; do
  33. autoload -Uz ${mod_function}
  34. done
  35. }
  36. }
  37. # initialize zim modules
  38. load_zim_function
  39. load_zim_module
  40. unset zmodules
  41. unfunction load_zim_{module,function}