Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zpm load @omz doesn't appear to actually initialise OMZ #24

Closed
novirium opened this issue Jan 16, 2021 · 3 comments
Closed

zpm load @omz doesn't appear to actually initialise OMZ #24

novirium opened this issue Jan 16, 2021 · 3 comments

Comments

@novirium
Copy link

In a recent change to the Readme, ZPM suggests to run zpm load @omz before loading any OMZ plugins or themes. I was assuming this is intended to source the root oh-my-zsh.sh file in the OMZ repository, which does some setup and loads all the framework libraries. This doesn't appear to work at the moment though - turning on debugging and running zpm load @omz after cleaning zpm shows:

zpm:init Initialize '@omz'
zpm:init:source Plugin file for @omz is missing

Trying to do this manually with zpm load @omz,source:oh-my-zsh.sh does work the first time, but when the cached version tries to run next time I open the shell there's messiness with the $ZSH variable pointing to the ZPM cache, so it can't find files from the OMZ repository like lib/compfix.zsh

I'm currently getting around most of this successfully just by manually loading all of the individual OMZ libraries I need instead:

zpm load                        \
  @omz-lib/compfix              \
  @omz-lib/completion           \
  @omz-lib/directories          \
  @omz-lib/functions            \
  @omz-lib/git                  \
  @omz-lib/grep                 \
  @omz-lib/history              \
  @omz-lib/key-bindings         \
  @omz-lib/misc                 \
  @omz-lib/nvm                  \
  @omz-lib/spectrum             \
  @omz-lib/theme-and-appearance

What is the recommended way to get OMZ plugins running via ZPM?

@grigorii-horos
Copy link
Member

Hi @novirium. The main problem is that ohmyzsh and zpm are package managers, so theoretically you don't need ohmyzsh if you use zpm. But ohmyzsh has a large list of integrate plugins, so I can't ignore it. Any omz plugin, theme or file form lib/ dir can be loaded by zpm, but not ohmyzsh itself. @omz is used only for installation/upgrade of core ohmyzsh repo, and nothing else. If you want to use an omz plugin, but it doesn't work correctly, try to load some omz libs before(usually @omz-lib/git).

@novirium
Copy link
Author

Gotcha 👍. So the comment in the readme about making sure to add zpm load @omz before using any of the OMZ plugins, libraries or themes is just to make sure there is actually a git clone of the OMZ git repo there for any of the plugin types starting with @omz* to reference?

I guess the zpm load @omz bit had me confused, as load usually tries to source things by default, and is relying on there not being a suitable file to source in the root OMZ repo. Ironically this actually achieves what I had wanted - using some OMZ plugins without running all of the OMZ framework init stuff.

For future reference, the suggested way to load OMZ plugins and themes would then be like this?

# Pull in OMZ (doesn't actually source anything)
zpm load @omz

# Load any OMZ libraries we want or our OMZ plugins require
zpm load                \
  @omz-lib/compfix      \
  @omz-lib/completion   \
  @omz-lib/directories  \
  @omz-lib/functions    \
  @omz-lib/git          \
  @omz-lib/grep         \
  @omz-lib/history      \
  @omz-lib/key-bindings \
  @omz-lib/misc         \
  @omz-lib/spectrum     \
  @omz-lib/theme-and-appearance

# Load some OMZ plugins and theme
zpm load          \
  @omz/virtualenv \
  @omz/git

zpm load @omz-theme/robbyrussell

@grigorii-horos
Copy link
Member

For future reference, the suggested way to load OMZ plugins and themes would then be like this?

Yes, you are absolutely right. You understood me correctly. I will change the README to avoid such misunderstandings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants