28

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?

alper
  • 2,919
  • 9
  • 53
  • 102
k_wisniewski
  • 2,439
  • 3
  • 24
  • 31
  • how did you conclude they're not working? can you paste zsh errors here? – NARKOZ Jul 24 '11 at 10:51
  • the errors are just a normal output like "command not found" when typing command that should be available. – k_wisniewski Jul 25 '11 at 15:39
  • can you paste the path you ended up using that worked for you? I'm having the same issue and it would be really helpful – bsiddiqui Jun 20 '13 at 21:23
  • Sorry, it was 2 years ago, I have changed my system and no longer use oh-my-zsh because of poor performance compared to properly configured bash. – k_wisniewski Jun 22 '13 at 08:48

11 Answers11

58

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
T. Arboreus
  • 1,067
  • 1
  • 9
  • 17
  • 1
    With me the problem was that: I had plugins bar after ZSH lin: – Jesus CMD Nov 21 '17 at 19:14
  • 6
    for me the solution was to move `source $ZSH/oh-my-zsh.sh` to the end of .zshrc, after all of my user configs. – Wis May 22 '19 at 19:41
  • on further investigation the issue looks to be having `source $ZSH/oh-my-zsh.sh` before setting vi mode on with `bindkey -v` and remapping some zsh shortcuts and some keys in vi mode, otherwise plugins work as normal. the issue is that if you source after, vi mode stops working. the OMZ plugin in question is fzf. – Wis May 23 '19 at 10:12
  • I had `#` before `plugins` :D – simPod Jun 26 '19 at 19:25
  • In my case it was `export ZSH=$HOME/.oh-my-zsh` which solved the problem thanks! – lacostenycoder Feb 24 '22 at 17:14
13

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!

cmaher
  • 5,100
  • 1
  • 22
  • 34
docwhat
  • 11,435
  • 6
  • 55
  • 54
  • 3
    Do you know *why* this would cause your plugins not to work (what does zsh need on the path?) I cannot seem to get mine to work (on arch linux). – Mike McFarland Jul 06 '15 at 23:08
4

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.

Fabio Montefuscolo
  • 2,258
  • 2
  • 21
  • 18
4

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.

alper
  • 2,919
  • 9
  • 53
  • 102
Satya
  • 1,569
  • 8
  • 13
0

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.

Nikash
  • 38
  • 4
0

In my case,I forgot to add custom plugin name to .zshrc file:

plugins=(customPluginName)

And reload .zshrc:

source ~/.zshrc
0

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.

Nature
  • 149
  • 1
  • 6
0

If your .zshrc has this at the top

export ZSH="~/.oh-my-zsh"

try to changing it to:

export ZSH="$HOME/.oh-my-zsh"
lacostenycoder
  • 10,623
  • 4
  • 31
  • 48
0

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
Junior Tour
  • 439
  • 7
  • 8
0

After installing the custom plugins manually, moving them to the $ZSH_CUSTOM/plugins/ location solved the issue.

ullas_jain
  • 13
  • 8
0

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"
herzorf
  • 99
  • 2