My development environment setup (Part 1)
Tags: bash, zsh, vim
Published: 2018-09-24 05:17:55

---
title: My development environment setup (Part 1)
published: true
description: How to get a good Linux development environment setup
tags: bash,zsh,vim
cover_image: http://inet.blog/wp-content/uploads/2018/06/Ubuntu-Linux-18.04-LTS-1024x576.jpg
---

Last week at work I got a new project on .NET Framework. As a good developer I tried to run it on Linux using .NET Core but I failed and my work's laptop didn't had Windows installed, what could I do?.

![](https://thepracticaldev.s3.amazonaws.com/i/llyxlk1dn1wc4amuqlpc.gif)

So, I went running with the tech support area, told them the problem and after some research the only solution was: _delete Linux, install Windows and install Linux again_.

**Fucking Windows.** 😡

![](https://i.kym-cdn.com/photos/images/original/000/176/261/Windows_9X_BSOD.png)

But that inspired to me to write this post. 

This is what I consider a good environment to develop quick, easy and be coolest in the office. **Don't judge me!**

P.S.: I'm using Ubuntu 18.04 because why not? I had Fedora 27 before eveything happened and it's still my favorite but I will give Ubuntu a try again.

Let's get started!

## 1. Install essential tools

We need the basics, you will suffer if you don't have them:

```bash
sudo apt-get update
sudo apt-get install build-essential git curl xclip

```

## 2. Install zsh

_Zsh_ (also called Z shell) is an extended version of the _Bourne Shell (sh)_. It has many cool features against original _bash_:

* Plugin and theme support
* Spelling correction
* Automatic **cd**
* And more!

Just install it with the follow command:

```bash
sudo apt-get install zsh
```
## 3. Install Oh My Zsh

Now we have a good shell, great. But [Oh My Zsh](https://github.com/robbyrussell/oh-my-zsh) will give us extra power:

![](https://thepracticaldev.s3.amazonaws.com/i/hxzoy1s0opswq3o0j2gh.png)

Then, just copy the follow command:

```bash
 sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```

And you will get this:

![](https://thepracticaldev.s3.amazonaws.com/i/gkgtegq2tnvt0loywl6m.png)

## 4. Start using zsh by default

If you restart your terminal it will be using bash again. Why? because you need to change it explicitly with the follow command:

```bash
# Change the shell to zsh
chsh -s `which zsh`
```
The bad thing is that you need to restart your computer 🙄.

```bash
# WARNING! It will shutdown immediately :(
sudo shutdown -r 0
```
But after rebooting this will be the result 😍:

![](https://thepracticaldev.s3.amazonaws.com/i/1p32t7p51dnbrmk5agt2.png)

## 5. Install vim

It's time to get into hacker mode 👨‍💻 :

![](https://thepracticaldev.s3.amazonaws.com/i/dxo5y90fl2wefn6hvtnm.gif)

Just kidding.

In my experience, working with _vim_ has been the best idea ever because:

* It's lightweight
* It's everywhere (even on Window's Git bash)
* I feel that I write code faster
* Don't even use the touchpad (or mouse)
* I'm forced to learn things such as package names and understand they purpose
* Syntax highlight for many programming languages
* Shortcuts as Sublime Text or Visual Code Studio

So, why don't you give it a try?


```bash
sudo apt-get install vim
```

This is the end for the part 1 😋.

In the next post I will cover:

* Configure _vim_ and add steroids
* Fixing some _vim_ weird errors
* Mastering vim

See you on the next post!

Part 2: https://dev.to/jorge_rockr/my-development-environment-setup-part-2-4ck9