How to setup Vim, Tmux, Docker for high productivity (Part II)

Development environment setup

In the second article in the series, we are going to install all of the tools used in this tutorial on Ubuntu 14.04. If you are running any other flavor of Debian, you should be just fine (with small adjustments of course). In any other case, you will need to dig it up yourself which should not be too difficult honestly. If something is unclear, feel free to check previous article.

Setup – The shell – Zsh

Working with pure Zsh is a lot of fun. However, combining it with Oh-my-zsh brings a lot of new possibilities thanks to themes, plugins and configuration options. In order to install everything execute following commands in your shell:

[code language=”bash”]
sudo apt-get install zsh
sudo apt-get install git-core
wget -O – | zsh
chsh -s `which zsh`
sudo shutdown -r 0

I use `git` plugin together with default theme `robbyrussell`. For more configuration options visit – Most of the themes have screenshots so it’s easy to select the one that suits you the best.

The editor – Vim

We will be using Vim 7.4 compiled with Python. Thankfully, it is shipped in most recent versions of Ubuntu, so all you need to do it to apt-get install it.

[code language=”bash”]
sudo apt-get install vim
vim –version | grep python
+cryptv +linebreak +python/dyn +viminfo
+cscope +lispindent -python3 +vreplace

If you see +python on the list, you are good to go. Don’t worry about configuration, we will get to it in the next post.

Windows and sessions – Tmux

In order to effectively work with Vim, or any shell editor actually, there must be a way to quickly switch between tabs, windows, and sessions. Tmux is a modern solution to that problem.

[code language=”bash”]
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository -y ppa:pi-rho/dev
sudo apt-get update
sudo apt-get install -y tmux
tmux -V

Don’t forget to alias it to get full 256 color support.

[code language=”bash”]
alias tmux=’TERM=xterm-256color tmux’

Setup – Tmuxp

Launching of Tmux and then opening all of the directories by hand quickly becomes a tedious task. One way to avoid it is by suspending your PC. But that’s a dirty solution. Better approach is to preconfigure sessions so that everything will be brought up automatically with few keystrokes. Likely, we need only one python library for that. Tmuxp.

[code language=”bash”]
sudo pip install tmuxp

As for Vim, the configuration of Tmuxp is yet another topic for a separate post. Stay tuned!

Services – Docker

In the old days I used to install all services on my machines by hand, this includes databases, queueing systems, caches etc. It worked pretty well, but I had one problem with it. The amount of mess created over time was beyond any control. Since I work on my private laptop, that was the last thing I wanted to have. Then I found Docker. By applying naive solution – ports binding – one can simulate fact of having everything installed locally when in reality it’s in containers.

The installation procedure is pretty lengthy that’s why I’m going to redirect you to the source.

  • visit this link to install Docker
  • visit this link to install Docker-compose
  • visit this link to configure docker group to run it without sudo

Development environment setup – summary

That’s pretty it. In the next two posts, we will focus on Vim and Tmuxp configuration which usually confuse people the most. Next, we are going to move to workflow description and general productivity tips.



This site uses Akismet to reduce spam. Learn how your comment data is processed.