Status line will not appear by default when there is only a single window
displayed. Run :h'laststatus' in Vim for more information.

If the repository was just cloned the following line needs to be added to the
vimrc:

setrtp+={repository_root}/powerline/bindings/vim

where {repository_root} is the absolute path to the Powerline installation
directory (see repository root).

If pathogen is used and Powerline functionality is not needed outside of Vim
then it is possible to simply add Powerline as a bundle and point the path above
to the Powerline bundle directory, e.g.
~/.vim/bundle/powerline/powerline/bindings/vim.

Vundle and NeoBundle users may instead use

Bundle 'powerline/powerline', {'rtp': 'powerline/bindings/vim/'}

(NeoBundle users need NeoBundle in place of Bundle, otherwise setup is
the same).

Vim-addon-manager setup is even easier because it is not needed to write this
big path or install anything by hand: powerline can be installed and
activated just like any other plugin using

call vam#ActivateAddons(['powerline'])

Warning

Never install powerline with pathogen/VAM/Vundle/NeoBundle and with pip.
If powerline functionality is needed in applications other then Vim then
system-wide installation (in case used OS distribution has powerline
package), pip-only or pipinstall--editable kind of installation
performed on the repository installed by Vim plugin manager should be used.

No issues are accepted in powerline issue tracker for double pip/non-pip
installations, especially if these issues occur after update.

Note

If supplied powerline.vim file is used to load powerline there are
additional configuration variables available: g:powerline_pycmd and
g:powerline_pyeval. First sets command used to load powerline: expected
values are "py" and "py3". Second sets function used in statusline,
expected values are "pyeval" and "py3eval".

If g:powerline_pycmd is set to the one of the expected values then
g:powerline_pyeval will be set accordingly. If it is set to some other
value then g:powerline_pyeval must also be set. Powerline will not check
that Vim is compiled with Python support if g:powerline_pycmd is set to
an unexpected value.

These values are to be used to specify the only Python that is to be loaded
if both versions are present: Vim may disable loading one python version if
other was already loaded. They should also be used if two python versions
are able to load simultaneously, but powerline was installed only for
python-3 version.

Add the following lines to .tmux.conf, where {repository_root} is
the absolute path to the Powerline installation directory (see repository
root):

source"{repository_root}/powerline/bindings/tmux/powerline.conf"

Note

The availability of the powerline-config command is required for
powerline support. The location of this script may be specified via
the $POWERLINE_CONFIG_COMMAND environment variable.

Note

It is advised to run powerline-daemon before adding the above line to
tmux.conf. To do so add:

run-shell"powerline-daemon -q"

to .tmux.conf.

Warning

Segments which depend on current working directory (e.g.
powerline.segments.common.vcs.branch()) require also setting up
shell bindings. It is not required to use powerline
shell prompt, components setting allows to
set up only powerline bindings for tmux without altering your prompt.
Without setting up shell bindings powerline will use current working
directory of tmux server which is probably not what you need.

Segments which depend on environment like
powerline.segments.common.env.virtualenv() will not work at all
(i.e. they will use environment of the tmux server), tracking environment
changes is going to slow down shell a lot.

In any case it is suggested to avoid both kinds of segments in tmux
themes because even support for tracking current
directory is very limited:

It works only in shell. Should you e.g. run Vim and run :cd there you
will get current working directory from shell.

Setting simple_prompt to False after IPython-5.0 is required regardless
of whether you use c.InteractiveShellApp.extensions setting or
c.TerminalInteractiveShell.prompts_class. But you probably already have
this line because IPython is not very useful without it.

IPython=0.11* is not supported and does not work. IPython<0.10 was not
tested (not installable by pip).