Wrote a README

pull/7/head
Aaron Johnson 6 years ago
parent 69e3d95cee
commit 9d5d97d28e

@ -0,0 +1,68 @@
# Aaron's ZSH Config
This is the basis of my ZSH config for all of my systems.
----------------------
## Setup
#### Step 1: Clone this repository
I personally like to clone this into `~/git/zsh` and use symlinks from there, so that's how I will write this up. If you'd rather, you can just as well clone it straight to `~/.zsh` if you want.
```
# If git directory doesn't exist:
mkdir ~/git
git clone https://git.skyfall.tech/skyfall/tab-sorcery.git ~/git/zsh
```
#### Step 2: Copy out example config files and edit to your preferences
Some variables of the shell configuratio nI don't keep the same across the board, so I have created a `zsh.conf` file for things such as shell options and prompt styles/colours. I have also added a [very] basic "custom" template file as an example as well. Both of these files, once copied to to the repo's root dir, will be ignored by git.
```
cd ~/git/zsh
cp -v example_configs/* ./
```
**IMPORTANT:**
The defaults in zsh/conf will work well for most systems, but if you are using any kind of BSD-derived system, including Mac OS-X, you will definitely need to set `BSD_MODE=true` in zsh.conf.
#### Step 3: Deploy symlinks to load the configuration
Even if you opted to clone the repo straight to `~/.zsh`, you will still need to at least make the symlink for the `zshrc` file.
```
cd
ln -s git/zsh .zsh
ln -s git/zsh/zshrc ./zshrc
# Test deployment by opening a new zsh instance
zsh
```
## Customization
Other than the `zsh.conf` options, you can perform any sort of customization you want easily by placing the configuration in the `custom` file. The `custom` file is loaded last, and so will overwrite anything set up by the default shell configuration here. You can also source other outside files from the `custom` files as well. If you don't care for any of the pre-defined prompts provided, just set up a new on in `custom`!
## Notable Features
### HISTORY_HIDE_SPACE
This option will let any command starting with an empty space character be omitted from `.zsh_history`. This is very useful for things such as running commands that contain passwords, for instance.
### AUTO_CD
If you just name a path, the shell will assume you intended to change directories.
```
ajohnson@helios:~ % git/zsh
ajohnson@helios:~/git/zsh [add_readme]%
```
### `cd` Search and Replace
You can substitute one word for another in your current working directory by using the cd syntax:
```
cd [old_word] [new_word]
```
Here is an example where I `cd` from a Confluence Tomcat log dir to a Jira Tomcat log dir, which you can see by looking at the current working directory in the prompt:
```
ajohnson@atlas:/opt/j2ee/domains/skyfall.tech/wiki/current/logs % cd wiki jira
/opt/j2ee/domains/skyfall.tech/jira/current/logs
ajohnson@atlas:/opt/j2ee/domains/skyfall.tech/jira/current/logs %
```
### Display Current VCS Branch in Prompt
This feature is my favourite one on the list. It works with Git and Subversion at least, though I have never tested it with Mercurial.
In this example, I start out in the 'rewrite' branch and switch to 'dev'.
```
ajohnson@helios:~/git/heatbot [rewrite]% git checkout dev
Switched to branch 'dev'
Your branch is up to date with 'origin/dev'.
ajohnson@helios:~/git/heatbot [dev]%
```
## Epilogue
If there are other prompt layouts/styles that you'd like to share, let me know and I'll be happy taking a look and considering adding them as options.
Loading…
Cancel
Save