powerline/docs/source/introduction.rst

65 lines
2.7 KiB
ReStructuredText

Introduction
============
This is the next version of Powerline, implemented in Python. It aims to
resolve some of the "unresolvable" problems of the vimscript implementation,
as well as providing a common code base for all projects that use Powerline
in some way (e.g. shell prompts and tmux themes).
The project is currently in beta, and most of the functionality in the old
vimscript project is already implemented.
Screenshots
-----------
**Mode-dependent highlighting**
* .. image:: _static/img/pl-mode-normal.png
:alt: Normal mode
* .. image:: _static/img/pl-mode-insert.png
:alt: Insert mode
* .. image:: _static/img/pl-mode-visual.png
:alt: Visual mode
* .. image:: _static/img/pl-mode-replace.png
:alt: Replace mode
**Automatic truncation of segments in small windows**
* .. image:: _static/img/pl-truncate1.png
:alt: Truncation illustration
* .. image:: _static/img/pl-truncate2.png
:alt: Truncation illustration
* .. image:: _static/img/pl-truncate3.png
:alt: Truncation illustration
The font in the screenshots is `Pragmata Pro`_ by Fabrizio Schiavi.
.. _`Pragmata Pro`: http://www.fsd.it/fonts/pragmatapro.htm
Feature highlights
------------------
* **Better performance.** Python performs quite a bit better than vimscript,
and by having most of the code in Python instead of vimscript it's also
much easier to profile the code and eliminate bottlenecks.
* **A much leaner code base.** With most of the functionality of the old
project implemented the new version consists of less than half the amount
of code.
* **Automatic removal of less important segments in small windows.** Not all
information is equally important to have in the statusline, and segments
with e.g. encoding and file format information are automatically removed
in smaller windows.
* **Dynamic statusline evaluation in Python.** Statuslines are dynamically
rendered in Python instead of relying on vim's statusline flags, which
allows much more flexibility when creating statuslines.
* **The possibility of adding more segments.** Because of vim's hardcoded
limitation of 80 statusline options, the vimscript implementation
triggered an error when adding more segments to the default theme. Since
segment contents are now rendered as plain text in Python it's possible to
add many more segments in the statusline before reaching this limit.
* **New and improved theme and colorscheme syntax.** Themes and colorschemes
are now written in JSON, with a much cleaner syntax that's easier to learn
and work with. Themes and colorschemes are also much more configurable,
and it's easy to write your own and store them in your home config
directory.