This repository shows the setup of my terminal and some other tools/aliases. All theme and scheme files are provided in an other repository, have a look!
What is iTerm2?
iTerm2 is a replacement for Terminal and the successor to iTerm. It works on Macs with macOS 10.10 or newer. iTerm2 brings the terminal into the modern age with features you never knew you always wanted.(Source: https://www.iterm2.com)
I extensively use the Split Panes
, Mouseless Copy
and of course the 256 Colors
+ Configurability
. There are lot more for example the Inline Images
. Take a look.
Zsh is like a superset of the standard BASH
. It adds the following advantages:
- better autocompletion (case insensitive..)
- path expansion (cd /v/w [tab] == cd /var/www)
- syntax highlighting
- spelling correction
- ... much more useful plugins
- oh-my-zsh
Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.
It also comes with a lot of themes
and plugins
.
To activate changes you can restart iTerm2, if you did some changes on them, or reload the zsh config file: source ~/.zshrc
Zsh is the default shell since macOS 10.15
The easiest way to install Zsh is using brew.
Therefore run: brew install zsh
As you can see on: http://ohmyz.sh - use the following command to install oh-my-zsh.
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Download and install iTerm2. Click
Or use brew: brew cask install iterm2
I changed colors of iTerm2 and provide the changes in an itermcolors
file.
- Download the
itermcolors
file. You can use the following command to automatically store it in youroh-my-zsh
installation path, subdircustom
, or use a custom one.curl https://raw.githubusercontent.com/se-jaeger/hunter-zsh-scheme/master/hunter.itermcolors > ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/hunter.itermcolors
- https://github.com/se-jaeger/hunter-zsh-scheme/blob/master/hunter.itermcolors
- Import
hunter.itermcolors
(or whatever you named it) into iTerm2- iTerm2 -> Preferences -> tab "Profiles" -> select -> tab "Colors" -> Color Presets... -> Import... -> choose the
hunter.itermcolors
file
- iTerm2 -> Preferences -> tab "Profiles" -> select -> tab "Colors" -> Color Presets... -> Import... -> choose the
- Select the scheme
hunter
(or whatever you named it)- iTerm2 -> Preferences -> tab "Profiles" -> select -> tab "Colors" -> Color Presets... ->
hunter
- iTerm2 -> Preferences -> tab "Profiles" -> select -> tab "Colors" -> Color Presets... ->
- iTerm2 -> Preferences -> tab "Profiles" -> select -> tab "Keys" -> Load Presets... -> select "Natural Text Editing"
(Source: https://apple.stackexchange.com/a/293988)
- iTerm2 -> Preferences -> tab "Profiles" -> tab "Appearance" -> Theme -> slect "Dark"
- iTerm2 -> Preferences -> tab "Terminal" -> tick "Unlimited scrollback"
Switches the virtual environment (conda and virtualenv) as you move between directories.
(Soruce: https://github.com/se-jaeger/zsh-autoactivate-environment)
- Run
git clone https://github.com/se-jaeger/zsh-autoactivate-environment ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autoactivate-environment
- Change your
~/.zshrc
file and addzsh-autoactivate-environment
to the plugins like:
plugins(
# other plugins
zsh-autoactivate-environment
)
(Source: https://github.com/se-jaeger/zsh-autoactivate-environment#installation-and-prerequisites)
It suggests commands as you type, based on command history.
(Source: https://github.com/zsh-users/zsh-autosuggestions#zsh-autosuggestions)
- Run
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- Change your
~/.zshrc
file and addzsh-autosuggestions
to the plugins like:
plugins(
# other plugins
zsh-autosuggestions
)
(Source: https://github.com/zsh-users/zsh-autosuggestions#oh-my-zsh)
It enables highlighing of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors.
(Source: https://github.com/zsh-users/zsh-syntax-highlighting#zsh-syntax-highlighting-)
- Run
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- Change your
~/.zshrc
file and addzsh-syntax-highlighting
to the the plugins like:
plugins(
# other plugins
zsh-syntax-highlighting
)
(Source: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md#oh-my-zsh)
This is a clean-room implementation of the Fish shell's history search feature, where you can type in any part of any command from history and then press chosen keys, such as the UP and DOWN arrows, to cycle through matches.
(Source: https://github.com/zsh-users/zsh-history-substring-search#zsh-history-substring-search)
- Run
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
- Change your
~/.zshrc
file and addzsh-history-substring-search
at the end of the plugins like. Just to make sure it is loaded afterzsh-syntax-highlighting
:
plugins(
# other plugins
# should be last plugin loaded
history-substring-search
)
(Source: https://github.com/zsh-users/zsh-history-substring-search#install)
I created a zsh-theme
file, which provide different features and change appearance, see Click.
- Download the
zsh-theme
file. You can use the following command to automatically store it in thethemes
dir of your installation directory, or download it yourself.curl https://raw.githubusercontent.com/se-jaeger/hunter-zsh-scheme/master/hunter.zsh-theme > ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/hunter.zsh-theme
- https://github.com/se-jaeger/hunter-zsh-scheme/blob/master/hunter.zsh-theme
- Activate the theme in
~/.zshrc
file:ZSH_THEME="hunter"
(or whatever you named it)
A collection of different tools I'm using.
Moves file and folders to Trash, like the Move to Trash
option in context menu.
Easy install via brew: brew install trash
Tree is a recursive directory listing command that produces a depth indented listing of files.
(Source: http://mama.indstate.edu/users/ice/tree/)
Easy install via brew: brew install tree
Simplified and community-driven man pages.
(Source: http://tldr.sh)
Easy install via brew: brew install tldr
The next gen ls command
(Source: https://github.com/Peltoche/lsd)
Easy install via brew: brew install lsd
See the following for a font workaround: lsd-rs/lsd#199 (comment)
Use the following in your ~/.zshrc
to always list file when stepping into new directory.
cd() {
builtin cd "$@"
l
}
A collection of different alias I'm using.
Add them to your ~/.zshrc
alias del="trash"
alias ..="cd .."
alias ls="lsd"
alias search="l | grep"
- a lot of aliases which are provided by oh-my-zsh
gst='git status'
ga='git add'
gaa='git add --all'
gcmsg='git commit -m'
gp='git push'
- for a list of all aliases type
alias