Skip to content

Instantly share code, notes, and snippets.

@Doerge
Last active January 23, 2023 14:35
Show Gist options
  • Save Doerge/cd1fb1cc5e7d5ea3e198f953457e6310 to your computer and use it in GitHub Desktop.
Save Doerge/cd1fb1cc5e7d5ea3e198f953457e6310 to your computer and use it in GitHub Desktop.
Terminal styling for the eyes and the fingers. Includes many productive plugins for oh-my-zsh

Download and install homebrew

https://brew.sh/

Download and install iterm

https://www.iterm2.com/downloads.html

zsh

brew install zsh zsh-completions
To activate these completions, add the following to your .zshrc:

  fpath=(/usr/local/share/zsh-completions $fpath)

You may also need to force rebuild `zcompdump`:

  rm -f ~/.zcompdump; compinit

Additionally, if you receive "zsh compinit: insecure directories" warnings when attempting
to load these completions, you may need to run this:

  chmod go-w '/usr/local/share'

oh my zsh

https://github.com/robbyrussell/oh-my-zsh

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

Put this in ~/.zshrc: IMPORTANT:

  • Search replace /Users/askedorge with your own user.
  • Replace DEFAULT_USER=askedorge with your user.
# Path to your oh-my-zsh installation.
export ZSH=/Users/askedorge/.oh-my-zsh

DEFAULT_USER=askedorge

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
#ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git docker sublime zsh-syntax-highlighting zsh-autosuggestions)

source $ZSH/oh-my-zsh.sh

# User configuration

# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi
export EDITOR='subl -w'

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

fpath=(~/.zsh $fpath)

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

Font

brew install --cask font-meslo-nerd-font

Then go to:

iterm > prefs > Profiles > Colors > Colors Presets = Solarized Dark
iterm > prefs > Profiles > Text > Change Font = 12 pt MesloLGMDZ Nerd Font

and choose the same for the Non-ascii font.

Computer hostname

Apple > Prefs > Sharing > Edit computer name

⌥ + arrow left|right skips words

NOTE Use vi-mode plugin instead? To enable skipping words in the terminal go to:

iterm > prefs > Profiles > keys

and either find the existing entry or create a new one which sends Esc + b for opt + left arrow and Esc + f for opt + right arrow.

Fuzzy completion

https://github.com/junegunn/fzf

brew install fzf
/usr/local/opt/fzf/install

Fish like auto-suggestions

https://github.com/zsh-users/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

The autosuggestions will only shown the first char. It's a color problem. Increase brightness of the auto suggestion:

iterm > prefs > Profiles > colors > ANSI Colors > Black > Bright
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment