Installation on OS X

Plugin installation

Python package

  1. Install a proper Python version (see issue #39 for a discussion regarding the required Python version on OS X):

    sudo port select python python27-apple
    
  2. Install Powerline using the following command:

    pip install --user git+git://github.com/Lokaltog/powerline
    

Note

You need to use the GitHub URI when installing Powerline! This project is currently unavailable on the PyPI due to a naming conflict with an unrelated project.

Vim installation

Any terminal vim version with Python 3.2+ or Python 2.6+ support should work, but if you’re using MacVim you need to install it using the following command:

brew install macvim --env-std --override-system-vim

Font installation

You need a patched font for Powerline to work on OS X. Check out the powerline-fonts repository on GitHub for patched versions of some popular programming fonts.

  1. Download the font of your choice and install it by double-clicking the font file in Finder and then click Install this font in the preview window.

    If you can’t find your preferred font in the powerline-fonts repo, you’ll have to patch your own font instead. See Font patching for instructions.

  2. Configure MacVim or your terminal emulator to use the patched font (the correct font usually ends with for Powerline).

Troubleshooting

I can’t see any fancy symbols, what’s wrong?

  • If you’re using iTerm2, please update to this revision or newer.
  • You need to set your LANG and LC_* environment variables to a UTF-8 locale (e.g. LANG=en_US.utf8). Consult your Linux distro’s documentation for information about setting these variables correctly.

The colors look weird in the default OS X Terminal app!

  • The arrows may have the wrong colors if you have changed the “minimum contrast” slider in the color tab of your OS X settings.
  • The default OS X Terminal app is known to have some issues with the Powerline colors. Please use another terminal emulator. iTerm2 should work fine.

The colors look weird in iTerm2!

  • The arrows may have the wrong colors if you have changed the “minimum contrast” slider in the color tab of your OS X settings.
  • Please disable background transparency to resolve this issue.

Statusline is getting wrapped to the next line in iTerm2

  • Turn off “Treat ambigious-width characters as double width” in Preferences –> Text.
  • Alternative: remove fancy dividers (they suck in this case), set ambiwidth to 2.

I receive a NameError when trying to use Powerline with MacVim!

  • Please install MacVim using this command:

    brew install macvim --env-std --override-system-vim
    

    Then install Powerline locally with pip install --user, or by running these commands in the powerline directory:

    ./setup.py build
    ./setup.py install --user
    

I receive an ImportError when trying to use Powerline on OS X!

  • This is caused by an invalid sys.path when using system vim and system Python. Please try to select another Python distribution:

    sudo port select python python27-apple
    
  • See issue #39 for a discussion and other possible solutions for this issue.

I’m using tmux and Powerline looks like crap, what’s wrong?

  • You need to tell tmux that it has 256-color capabilities. Add this to your .tmux.conf to solve this issue:

    set -g default-terminal "screen-256color"
    
  • If you’re using iTerm2, make sure that you have enabled the setting Set locale variables automatically in Profiles ‣ Terminal ‣ Environment.

I’m using tmux/screen and Powerline is colorless

  • If the above advices do not help, then you need to disable term_truecolor.
  • Alternative: set additional_escapes to "tmux" or "screen". Note that it is known to work perfectly in screen, but in tmux it may produce ugly spaces.

After an update something stopped working

Assuming powerline was working before update and stopped only after there are two possible explanations:

  • You have more then one powerline installation (e.g. pip and Vundle installations) and you have updated only one.
  • Update brought some bug to powerline.

In the second case you, of course, should report the bug to powerline bug tracker. In the first you should make sure you either have only one powerline installation or you update all of them simultaneously (beware that in the second case you are not supported). To diagnose this problem you may do the following:

  1. If this problem is observed within the shell make sure that

    python -c 'import powerline; print (powerline.__file__)'
    

    which should report something like /usr/lib64/python2.7/site-packages/powerline/__init__.pyc (if powerline is installed system-wide) or /home/USER/.../powerline/__init__.pyc (if powerline was cloned somewhere, e.g. in /home/USER/.vim/bundle/powerline) reports the same location you use to source in your shell configuration: in first case it should be some location in /usr (e.g. /usr/share/zsh/site-contrib/powerline.zsh), in the second it should be something like /home/USER/.../powerline/bindings/zsh/powerline.zsh. If this is true it may be a powerline bug, but if locations do not match you should not report the bug until you observe it on configuration where locations do match.

  2. If this problem is observed within the vim instance you should check out the output of the following Ex mode commands

    python import powerline as pl ; print (pl.__file__)
    python3 import powerline as pl ; print (pl.__file__)
    

    One (but not both) of them will most likely error out, this is OK. The same rules apply as in the 1), but in place of sourcing you should seek for the place where you modify runtimepath vim option. If you install powerline using VAM then no explicit modifications of runtimpath were performed in your vimrc (runtimepath is modified by VAM in this case), but powerline will be placed in plugin_root_dir/powerline where {plugin_root_dir} is stored in VAM settings dictionary: do echo g:vim_addon_manager.plugin_root_dir.

There is a hint if you want to place powerline repository somewhere, but still make powerline package importable anywhere: use

pip install --user --editable path/to/powerline

My vim statusline has strange characters like ^B in it!

  • Please add set encoding=utf-8 to your vimrc.

My vim statusline has a lot of ^ or underline characters in it!

  • You need to configure the fillchars setting to disable statusline fillchars (see :h fillchars for details). Add this to your vimrc to solve this issue:

    set fillchars+=stl:\ ,stlnc:\
    

My vim statusline is hidden/only appears in split windows!

  • Make sure that you have set laststatus=2 in your vimrc.

My vim statusline is not displayed completely and has too much spaces

  • Be sure you have ambiwidth option set to single.
  • Alternative: set ambiwidth to 2, remove fancy dividers (they suck when ambiwidth is set to double).

When using z powerline shows wrong number of jobs

This happens because z is launching some jobs in the background from $POWERLINE_COMMAND and these jobs fail to finish before powerline prompt is run.

Solution to this problem is simple: be sure that z.sh is sourced strictly after powerline/bindings/bash/powerline.sh. This way background jobs are spawned by z after powerline has done its job.

I am suffering bad lags before displaying shell prompt

To get rid of these lags there currently are two options:

  • Take powerline-daemon script and one of powerline-client implementations from feature/daemon branch (all powerline-client implementations leave in client folder: you need to either compile powerline.c or install socat and use powerline.sh (powerline.py is much slower)). Fortunately this branch will be merged in the future.
  • Compile and install libzpython module that lives in https://bitbucket.org/ZyX_I/zpython. This variant is zsh-specific.