Reputation: 2519
I've just discovered oh-my-zsh, but I can't get it to work. While themes work just perfectly, plugins do not. I have some plugins selected, eg. macports, but neither I get port command completion nor do appropriate aliases work. Here's my ~/.zshrc
:
# Path to your oh-my-zsh configuration.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
export ZSH_THEME="steeef"
# Set to this to use case-sensitive completion
# export CASE_SENSITIVE="true"
# Comment this out to disable weekly auto-update checks
# export DISABLE_AUTO_UPDATE="true"
# Uncomment following line if you want to disable colors in ls
# export DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
# export DISABLE_AUTO_TITLE="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git osx github macports textmate svn)
source $ZSH/oh-my-zsh.sh
# Customize to your needs...
export
PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin/:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/cuda/bin:/usr/local/cuda/bin:/opt/local/bin:/opt/local/sbin
textmate and osx plugins also do not seem to work. zsh
complains about unknown command and stops. git and svn have some basic completion but I'm not sure whether it's done by plugin or just a normal zsh completion. Do I have to export something to use those plugins? Or if not, what to do to have that fixed?
Upvotes: 33
Views: 106928
Reputation: 404
I got a curveball different than everybody else.
My bug was the folder name of the distributed plugin file vs. how it was listed in the .zshrc.
I guess depending on operating this matters a lot. I was having a problem with zsh-you-should-use folder in ~/.oh-my-zsh/custom/plugins vs it being listed as "you-should-use" in .zshrc. Once I matched the folder to how it was referenced in .zshrc it started working fine.
Upvotes: 0
Reputation: 31
Considering all the answers here, also make sure that you have defined the plugins correctly. I had it misconfigured like this,
plugins=(git)
.....
plugins=(git custom-plugin)
what you can do is,
plugins=(git custom-plugin)
Upvotes: 1
Reputation: 1
The plugin copydir was replaced ,the new one is called copy path.replace ment from the source
Upvotes: 0
Reputation: 617
Many of the plugins are dependent on certain binaries existing and will silently fail to install if that binary is not found on the $PATH.
Ex: the kubectl plugin requires kubectl to be installed - the plugin script just bails and doesn't even install the aliases if it can't find the command on the $PATH.
This check is at the start of many such plugins
if (( ! $+commands[kubectl] )); then
return
fi
Note: This means you need to initialize brew
before any plugins based on binaries that are installed via brew
will work.
I found that putting the brew
plugin at the start of the list seems to work as well as oh-my-zsh
seems to initialize the plugins in order. Your results may vary.
This works (kubectl aliases are installed):
plugins=(brew kubectl)
source $ZSH/oh-my-zsh.sh
This does not work (kubectl aliases are not installed):
plugins=(kubectl brew)
source $ZSH/oh-my-zsh.sh
Upvotes: 0
Reputation: 1
Make sure that cli tools/commands referred by plugins are already installed. For example, it will fail if you include kubectl plugin while you didn't install kubectl beforehand
Upvotes: 0
Reputation: 129
i have the same problem,when i writen:
plugins=(git node)
it didn't work
so i installed node again and add path to PATH
export PATH="/opt/homebrew/opt/node@18/bin:$PATH"
Upvotes: 0
Reputation: 13
After installing the custom plugins manually, moving them to the $ZSH_CUSTOM/plugins/
location solved the issue.
Upvotes: 0
Reputation: 1789
In my case, in ~/.zshrc
I had repeated plugins variable
plugins=(git)
.
.
.
plugins=(git autojump zsh-syntax-highlighting zsh-autosuggestions)
Check to see if this is the case with you because with this only your git plugin will be used.
Remove the first plugins variable and it should work.
Upvotes: 4
Reputation: 638
Try manually source your plugins like this:
source ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
Full .zshrc
example:
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(zsh-autosuggestions)
source ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
Upvotes: 1
Reputation: 11226
If your .zshrc
has this at the top
export ZSH="~/.oh-my-zsh"
try to changing it to:
export ZSH="$HOME/.oh-my-zsh"
Upvotes: 0
Reputation: 149
make sure the folders of the plugins are located in the ~/.oh-my-zsh/custom/plugins folder. I will advise you are on this directory when you git clone the plugins.
Secondly ensure that you seperate the list of plugins in the ~/.zshrc file with a single space NOT comma.
.
.
.
plugin = (git zsh-syntax-highlighting)
.
.
.
So in the above example, two plugins are added there: git and zsh-syntax-highlighting.
Upvotes: 0
Reputation: 11704
I got bitten by this.
What happened is you did a manual install and the instructions for the manual install don't mention that you need to set the PATH
yourself.
So you end up with the default PATH. The source for the automatic setup code copies your current path and appends it to the .zshrc
, which isn't enough if you depend on non-standard PATH
entries (e.g. you run Homebrew on a Mac).
So the fix is simple:
Fire up your old shell and its configuration file and then copy and paste the value of $PATH
into the top of your ~/.zshrc
file.
Ciao!
Upvotes: 17
Reputation: 21
In my case,I forgot to add custom plugin name to .zshrc file:
plugins=(customPluginName)
And reload .zshrc:
source ~/.zshrc
Upvotes: 0
Reputation: 38
I was running into this with the kubectl
plugin.
Looking at the contents of ~/.oh-my-zsh/plugins/kubectl/kubectl.plugin.zsh
I realized I didn't have the same content as what was on the github repo. Manually updating the file with the contents from the oh-my-zsh repo helped and the plugin started to work. Guess I had to update my oh-my-zsh installation to get the latest plugin content but this worked for me.
Upvotes: 0
Reputation: 1059
Make sure that you define your plugins variable before you initialize zsh:
plugins=(git wd)
export ZSH=/home/<user>/.oh-my-zsh
source $ZSH/oh-my-zsh.sh
Upvotes: 68
Reputation: 2548
I had the same problem just now! There was a package called grml-zsh-config
installed in my Archlinux. I removed this package and oh-my-zsh
themes started to work.
Upvotes: 4