go install github.com/mr-pmillz/pimp-my-shell/v2@latest
Download the latest release for your system from Releases
go build
to build the binary.
Vim YouCompleteMe plugin requires this for C lang completion
xcode-select --install
./pimp-my-shell
If you already have oh-my-zsh installed, don't worry! Your ~/.zshrc file will not be overridden by the pimp-my-shell. The only thing that will change is your zsh theme and the following plugins will be merged into your existing plugins=() object
git zsh-syntax-highlighting tmux zsh-autosuggestions virtualenv ansible docker docker-compose terraform helm kubectl fzf
After Installation, if you want to Customize Powerlevel10k zsh theme differently, run
p10k configure
If you want your custom vim plugins to automatically update, simply create this cronjob
crontab -e
0 12 * * * cd ~/.vim_runtime/my_plugins && ./update.sh > gitPullUpdates.txt 2>&1
This project was designed to automate all the configurations that I typically set up for my terminal on Macos and Debian/Ubuntu Linux.
Currently, this will (if not already installed and setup)
Please see the following repos for more information about these configurations and plugins All these configurations can be modified to your needs
See Tmux-Cheat-Sheet
CTRL^b % = split vertical
CTRL^b " = split horizontal
CTRL^b h = jump to left window
CTRL^b k = jump to up window
CTRL^b c = create new pane
CTRL^b , = rename pane
CTRL^b 1 = jump to 1 pane
CTRL^b I = source tmux and install plugins
CTRL^b ! = open current window to new pane`
, = leader key <leader>
,nn = toggle nerdtree
F12 = toggle nerdtree
i = Nerdtree open pane horizontal
s = Nerdtree open pane vertical
CTRL+ww = cycle selected vim pane
,te = open new tab after selecting file
,tb = previous tab
,tn = next tab
:bd = buffer delete (similar to :q except it removes the tab buffer as well as closing the pane but will not quit)
,j = jump to file with fzf fuzzy finder
If you want to customize these configs further, The main files you'll want to look at are the following
~/.oh-my-zsh/custom/aliases.zsh
alias .z='source ~/.zshrc'
alias l='lsd -al --group-dirs first'
alias lld='ls -d -alh $PWD/*'
alias hg='history | grep'
alias myip='dig +short myip.opendns.com @resolver1.opendns.com'
alias pyup='python3 -m http.server'
alias a2='curl wttr.in/Ann_Arbor'
alias gs='git status'
alias gcmsg='git commit -m '
alias gl="git log --all --graph --pretty=tformat:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --date=short"
alias gll="git log --all --stat --pretty=tformat:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
alias gln="git --no-pager log --all --stat --pretty=tformat:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative -n 10"
alias clp="pbcopy < $1"
alias fzfbat="fzf --preview 'bat --style numbers,changes --color=always {}' | head -500"