stevendesu / environment

My personal working environment
1 stars 0 forks source link

Steven's Wonderful Terminal Environment

Table of Contents

What even is this?

This repository stores setup scripts and configurations for my preferred working environment. Using this you can configure your shell to look and behave the way mine does.

Is this strictly necessary? Not really. But it's really cool. I can almost guarantee that developers will find themselves working twice as fast (at least) if they adopt my environment!

Dependencies

For starters, my coding environment utilizes the Z Shell as opposed to the Bourne Shell, the Bourn Again Shell (Bash), Korn Shell (ksh), or any other alternatives. I liked this shell particularly because it has:

On top of the Z Shell I utilize a Terminal Multiplexer to work in parallel and handle long-running background tasks. For this I chose tmux because of its popularity and the following features that I take advantage of:

Finally, as a text editor of choice, I went with NeoVim due to:

Features

For configurations specific to any one component of the environment, jump to the component's section below.

Upon installing my environment, you will be graced with the following benefits in your day to day life:

Beyond that, it also installs several useful development tools for you:

How to install it?

In order to install this environment, you first need to install git. How you do this is different on every machine, so try Googling it.

Once git is installed, set up the environment like so:

# Go to your home directory:
cd ~

# Clone the repository:
git clone https://github.com/stevendesu/environment.git

# Go to the environment directory:
cd environment

# Run the setup script
./setup.sh

That should be it! The script currently works on Ubuntu and Mac OS X, and may work on other machines (untested). I will work on adding support for more as the need arises.

Z Shell

To configure the Z Shell I utilized Prezto, a fork of Oh-My-ZSH focused on performance. Prezto is a framework for configuring ZSH which provides sane defaults, alises, additional auto completions, and several prompt themes.

I forked Prezto to create my own stevendesu theme. This theme:

Furthermore I added a few additional aliases:

Finally, I created several useful tools that can be run from the command-line:

Terminal Multiplexer

For tmux I created a custom .tmux.conf file:

Furthermore, running setup.sh will add one additional line to the tmux configuration file based on your operating system. This line will cause the copy/paste function in tmux to also copy to the operating system's clipboard buffer, so you can easily paste into graphical programs

NeoVim

For NeoVim I take advantage of several plugins:

I utilize the monokai color theme

Beyond this, I have an init.vim configuration file which heavily modifies the default behavior in many cases: