Ubuntu Setup on Windows 10 with oh-my-zsh and oh-my-vim
Install Ubuntu for windows
Install the Linux subsystem
Start Powershell as administrator and run the following command – reboot will occur after command is finished
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
After reboot install Ubuntu using the Microsoft Store – search “ubuntu” and select install.
Open Ubuntu console for the first time – follow prompts to configure console/ubuntu for the first time.
Perform APT update/upgrade after first login complete – from the command prompt…
sudo apt-get update sudo apt-get upgrade # click y to perform upgrade # this will take a few minutes
Install some additional utilities needed (may already be installed but good to check)
sudo apt-get install curl wget git
Install zsh shell
sudo apt-get install zsh
Basic install steps can be found at the oh-my-zsh source page – https://github.com/robbyrussell/oh-my-zsh but basic curl command follows.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Oh-my-zsh has a crazy number of plugins that you can enable as desired – I suggest at least a couple of favorites (git). To configure this you will need to edit the ~/.zshrc configuration file using your favorite editor (vim, nano…). See the list of plugins by look in the plugins folder – see the readme’s in each for more info (https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins)
Another thing you will probably want to configure is the theme to be used which is also configured in the ~/.zshrc file.
My favorite theme – ZSH_THEME=”agnoster” which is a great theme for git but has some issues displaying the special characters used – more info on how to fix that below. Powerline fonts are required for this theme and many of the other available. A list of themes can be seen by looking in the themes folder of oh-my-zsh (https://github.com/robbyrussell/oh-my-zsh/tree/master/themes).
Adding Powerline fonts
Install powerline fonts in Ubuntu
sudo apt-get install fonts-powerline
The above will install the Powerline fonts into the Ubuntu shell but that will still not allow for them to display properly within the Ubuntu shell. What is missing is the terminal itself needs to be configured to use the Powerline fonts also.
There are many “flavors” of the Powerline fonts which can be found here – https://github.com/powerline/fonts. Browse the available font folders found in the font repo and select on to install on your Windows 10 machine. To do this identify on of the TFF files and download it to your machine. One choise that I use it the following font – https://github.com/powerline/fonts/blob/master/DejaVuSansMono/DejaVu%20Sans%20Mono%20for%20Powerline.ttf. After browsing to the desired font like the previous url click the “download” button to download the font locally.
Double click on the font after downloading to load it into the Windows font display utility. After reviewing what the font looks like click the” install” button.
Now configure the Ubuntu Terminal to use the font – click the upper left Ubuntu logo you see in your terminal in order to edit the terminal properties – click the “properties” menu item to edit. The properties window will then be displayed – in the font configuration window select the fount by highlighting it that you just installed ie. “DejaVu Sans Mono for Powerline”. Click ok and then close the current terminal and restart.
You should now see something like this after you terminal comes back up – oh-my-zsh theme now drawing correctly.
Install Improved version of vim that supports lua plus python along with other nice to have tools.
sudo apt-get install vim-nox-py2
Run the following command to install oh-my-vim.
curl -L https://raw.github.com/liangxianzhe/oh-my-vim/master/tools/install.sh | sh
After the install run vim in order to finish the install/configuration of vim using oh-my-vim. This step will take a while to download and configure the needed components. In my case i had to uninstall vimproc when prompted (y).
And that is it – vim should not be configured with all the bells and whistles – see the repo for detail features that are now available to you.