Having relevant information in the bash prompt or vim status bar can always help devs. Looking for options, we came across four. There prompts and bars are in general called powerlines. Take your pick!
Works in the bash and fish shell. Displays information about the current git repository like the branch name, difference with remote branch, number of files staged, changed, stashed, etc.
To install, run:
$ cd $ git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt
To configure, add the following in ~/.bashrc:
GIT_PROMPT_ONLY_IN_REPO=1 source ~/.bash-git-prompt/gitprompt.sh
Works in Bash, ZSH and Fish. Shows the status of version control in a beautiful and colourful prompt. Features:
- Shows some important details about the git/svn/hg/fossil branch:
> Displays the current branch which changes background colour when the branch is dirty
> A ‘+’ appears when untracked files are present
> When the local branch differs from the remote, the difference in number of commits is shown along with ‘⇡’ or ‘⇣’ indicating whether a git push or pull is pending - Changes colour if the last command exited with a failure code
- Shortens the displayed path with an ellipsis if too deep into the directory tree
- Shows the current Python virtualenv environment
- Easy to customize and extend
To install, run:
$ git clone https://github.com/milkbikis/powerline-shell.git $ cd powerline-shell $ ./install.py $ ln -s ~/powerline-shell.py $ cd .. $ git clone https://github.com/powerline/fonts.git $ cd fonts $ ./install.sh
Before running the third step above you can edit config.py.dist to config.py to configure segments according to your preference.
Add the following in your ~/.bashrc:
function _update_ps1() { export PS1="$(~/powerline-shell.py $? 2> /dev/null)" } export PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
To view the colours, you may need to set $TERM to xterm-256color:
$ export TERM=xterm-256color
3. powerline
Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile. Features:
- Extensible and feature rich. Written in Python.
- Support for prompts and statuslines in many applications
- Fast and lightweight, with daemon support for even better performance
- Mode-dependent highlighting
- Automatic truncation of segments in small windows
To install, run:
$ sudo pip install powerline-status
You also need to install the fonts. Using patched fonts is the easier option. Refer to this section from docs.
4. vim-airline
Another lean status or tabline for vim displaying extra information. One of the main advantages is vimscript based development (no Python). Features:
- Written with extensibility in mind
- Integrates with a variety of plugins
- Looks good with regular fonts and provides configuration points to use unicode or powerline symbols
- Optimized for speed; it loads in under a millisecond
- Extensive suite of themes for popular colour schemes
- Works with vim 7.2 and above
- Replace all sections with standard statusline syntax
- Automatic truncation
- Smarter tab line
To install, run:
$ git clone https://github.com/bling/vim-airline.git $ cd vim-airline $ cp -rnv * ~/.vim/
Add the following in your ~/.vimrc to enable airline:
set laststatus=2
Similar software
- vim-powerline : written in vimscript, predecesor of powerline
- promptline.vim : airline plugin for bash/zsh/fish
- tmuxline.vim : airline plugin for tmux
Awesome stuff! powerline.vim works nicely for me in bash and zsh! Thanks.