Giter VIP home page Giter VIP logo

pimp-my-shell's Introduction

Pimp-My-Shell

Donate Go Report Card GitHub all releases GitHub repo size GitHub go.mod Go version GitHub release (latest by date) GitHub commit activity Twitter CI codecov

Table of Contents

pimp-my-shell.png

Install

If you have a version of golang >= 16.X you can install with

go install github.com/mr-pmillz/pimp-my-shell/v2@latest

If using an older version of golang

go get github.com/mr-pmillz/pimp-my-shell/v2@latest

Manual installation

Download the latest release for your system from Releases

  • or clone the repo and run go build to build the binary.
    • If you're going to build from source, this project requires >= go v1.17.X
    • This project only works on MacOSX and Linux Ubuntu/Debian systems currently

MacOS Users Ensure that you have x-code CommandLineTools installed

Vim YouCompleteMe plugin requires this for C lang completion

xcode-select --install

Usage

./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

About

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)

  • install oh-my-zsh + awesome plugins
  • install tmux + awesome mac config + plugins
  • install vim + awesome vim setup + plugins
  • install cheat + configure + community cheatsheets
  • fzf + bat for finding files fast + file preview CTRL+r search history stupendously
  • and various other dependencies

Resources

Please see the following repos for more information about these configurations and plugins All these configurations can be modified to your needs

Tmux Hotkeys

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`

VIM Hotkeys

,          = 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

Adjusting

If you want to customize these configs further, The main files you'll want to look at are the following

  • ~/.tmux.conf.local
  • ~/.vim_runtime/my_config.vim
    • This is where all further customization for vim can be done
      • It's the same as default .vimrc you would normally edit
    • Do not edit ~/.vimrc
  • ~/.zshrc
    • You can edit this file with env var and aliases however, it is best a practice to put customizations
    • such as aliases in ~/.oh-my-zsh/custom/aliases.zsh

Custom Aliases

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"

Mac Fix Terminal bind keys

  • because of a shortcut conflict with Mission Control/Spaces on MacOSX
  • make sure to uncheck these 2 options in
  • System Preferences -> Keyboard -> Shortcuts -> Mission Control, Move left/right a space mac-bind-keys.png

Enjoy

pimp-my-shell's People

Contributors

dependabot[bot] avatar mr-pmillz avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.