Skip to content

Instantly share code, notes, and snippets.

@neanias
Last active December 18, 2021 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neanias/740b15c8eda4ac38eee32671897ed6a1 to your computer and use it in GitHub Desktop.
Save neanias/740b15c8eda4ac38eee32671897ed6a1 to your computer and use it in GitHub Desktop.
# Don't let ripgrep vomit really long lines to my terminal, and show a preview.
--max-columns=150
--max-columns-preview
# Add Rails type for searching just Rails files
--type-add
rails:*.{gemspec,rb,erb,rbapi}
--type-add
rails:.irbrc
--type-add
rails:Gemfile
--type-add
rails:Rakefile
--smart-case
source ~/.zplug/init.zsh
# Let zplug manage itself
zplug "zplug/zplug", hook-build:"zplug --self-manage"
# Carry over Oh My ZSH plugins
zplug "plugins/git", from:oh-my-zsh
zplug "plugins/gpg-agent", from:oh-my-zsh
# Needs to be set _before_ we source the SSH agent plugin
zstyle :omz:plugins:ssh-agent agent-forwarding on
zplug "plugins/ssh-agent", from:oh-my-zsh
zplug "lib/completion", from:oh-my-zsh
zplug "Aloxaf/fzf-tab"
# zsh-user plugins
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-autosuggestions"
zplug "zdharma/fast-syntax-highlighting" #, defer:2
if ! zplug check --verbose; then
printf "Install? [y/N]: "
if read -q; then
echo; zplug install
fi
fi
# Then, source plugins and add commands to $PATH
zplug load
###########
# OPTIONS #
###########
setopt AUTO_PUSHD
setopt PUSHD_IGNORE_DUPS
setopt PUSHDMINUS
setopt RM_STAR_WAIT
setopt CORRECT # Command autocorrection
setopt AUTO_PARAM_SLASH
#############
# ALIASES #
#############
alias be="bundle exec"
alias la="exa -a"
alias ll="exa -alh"
alias ga="git add"
alias gf="git fetch"
alias gpl="git pull"
alias grv="git remote -v"
alias gst="git status"
alias -g ...='../..'
alias -g ....='../../..'
alias -g .....='../../../..'
alias -g ......='../../../../..'
#############
# HISTORY #
#############
## History file configuration
[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"
[ "$HISTSIZE" -lt 50000 ] && HISTSIZE=50000
[ "$SAVEHIST" -lt 10000 ] && SAVEHIST=10000
## History command configuration
setopt EXTENDED_HISTORY # record timestamp of command in HISTFILE
setopt HIST_EXPIRE_DUPS_FIRST # delete duplicates first when HISTFILE size exceeds HISTSIZE
setopt HIST_IGNORE_DUPS # ignore duplicated commands history list
setopt HIST_IGNORE_SPACE # ignore commands that start with space
setopt HIST_VERIFY # show command with history expansion to user before running it
setopt APPEND_HISTORY # zsh sessions will append their history list to the history file, rather than replace it
setopt SHARE_HISTORY # share command history data
#############
# Functions #
#############
# Use fd and fzf to get the args to a command.
# Works only with zsh
# Examples:
# f mv # To move files. You can write the destination after selecting the files.
# f 'echo Selected:'
# f 'echo Selected music:' --extension mp3
# fm rm # To rm files in current directory
f() {
sels=( "${(@f)$(fd "${fd_default[@]}" "${@:2}"| fzf)}" )
test -n "$sels" && print -z -- "$1 ${sels[@]:q:q}"
}
# Like f, but not recursive.
fm() f "$@" --max-depth 1
# Deps
alias fz="fzf-noempty --bind 'tab:toggle,shift-tab:toggle+beginning-of-line+kill-line,ctrl-j:toggle+beginning-of-line+kill-line,ctrl-t:top' --color=light -1 -m"
fzf-noempty () {
local in="$(</dev/stdin)"
test -z "$in" && (
exit 130
) || {
ec "$in" | fzf "$@"
}
}
ec () {
if [[ -n $ZSH_VERSION ]]
then
print -r -- "$@"
else
echo -E -- "$@"
fi
}
# ftags - search ctags
ftags() {
local line
[ -e tags ] &&
line=$(
awk 'BEGIN { FS="\t" } !/^!/ {print toupper($4)"\t"$1"\t"$2"\t"$3}' tags |
cut -c1-80 | fzf --nth=1,2
) && ${EDITOR:-nvim} $(cut -f3 <<< "$line") -c "set nocst" \
-c "silent tag $(cut -f2 <<< "$line")"
}
###################
# Other imports #
###################
export EDITOR='nvim'
test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
export XDG_CONFIG_PATH="$HOME/.config"
export RIPGREP_CONFIG_PATH="$XDG_CONFIG_PATH/ripgrep/config"
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# Pyenv
export PATH="/$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# Add locally installed binaries to PATH
export PATH="$HOME/.local/bin:$PATH"
# Load rbenv automatically by appending
# the following to ~/.zshrc:
# Rbenv
eval "$(rbenv init -)"
function set_win_title() {
echo -ne "\033]0; $(basename "$PWD") \007"
}
starship_precmd_user_func="set_win_title"
eval "$(starship init zsh)"
# HSTR configuration - add this to ~/.zshrc
alias hh=hstr # hh to be alias for hstr
setopt histignorespace # skip cmds w/ leading space from history
export HSTR_CONFIG=hicolor # get more colors
bindkey -s "\C-r" "\C-a hstr -- \C-j" # bind hstr to Ctrl-r (for Vi mode check doc)
# Initialise zoxide
eval "$(zoxide init zsh)"
# fzf-tab config
enable-fzf-tab
# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
# set descriptions format to enable group support
zstyle ':completion:*:descriptions' format '[%d]'
# set list-colors to enable filename colorizing
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# preview directory's content with exa when completing cd
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 --color=always $realpath'
# switch group using `,` and `.`
zstyle ':fzf-tab:*' switch-group ',' '.'
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
export FZF_DEFAULT_COMMAND="fd --type f --hidden --follow --exclude .git"
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
source $HOME/.cargo/env
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
tap "github/gh"
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-versions"
tap "homebrew/core"
tap "homebrew/services"
tap "universal-ctags/universal-ctags"
brew "bat"
brew "cowsay"
brew "deno"
brew "diskus"
brew "exa"
brew "fd"
brew "figlet"
brew "fortune"
brew "fzf"
brew "gh"
brew "git"
brew "git-delta"
brew "git-extras"
brew "gron"
brew "hexyl"
brew "hstr"
brew "htop"
brew "httpie"
brew "jq"
brew "neovim"
brew "nvm"
brew "tmux"
brew "pastel"
brew "procs"
brew "rbenv"
brew "ripgrep"
brew "silicon"
brew "starship"
brew "stylua"
brew "tealdeer"
brew "tokei"
brew "tree"
brew "wget"
brew "wtf"
brew "zoxide"
brew "universal-ctags/universal-ctags/universal-ctags", args: ["HEAD"]
{
"Link Color" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.73423302173614502,
"Alpha Component" : 1,
"Green Component" : 0.35916060209274292
},
"Tags" : [
],
"Ansi 12 Color" : {
"Green Component" : 0.50962930917739868,
"Red Component" : 0.44058024883270264,
"Blue Component" : 0.51685798168182373
},
"Ansi 7 Color" : {
"Green Component" : 0.89001238346099854,
"Red Component" : 0.91611063480377197,
"Blue Component" : 0.79781103134155273
},
"Draw Powerline Glyphs" : false,
"Bold Color" : {
"Green Component" : 0.56485837697982788,
"Red Component" : 0.50599193572998047,
"Blue Component" : 0.56363654136657715
},
"Ansi 8 Color" : {
"Green Component" : 0.35665956139564514,
"Red Component" : 0.27671992778778076,
"Blue Component" : 0.38298487663269043
},
"Ansi 9 Color" : {
"Green Component" : 0.21325300633907318,
"Red Component" : 0.74176257848739624,
"Blue Component" : 0.073530435562133789
},
"Ansi 1 Color" : {
"Green Component" : 0.10840655118227005,
"Red Component" : 0.81926977634429932,
"Blue Component" : 0.14145714044570923
},
"Rows" : 25,
"Default Bookmark" : "No",
"Custom Directory" : "No",
"Cursor Guide Color" : {
"Red Component" : 0.70213186740875244,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 0.25,
"Green Component" : 0.9268307089805603
},
"Non-ASCII Anti Aliased" : true,
"Use Bright Bold" : true,
"Ansi 10 Color" : {
"Green Component" : 0.35665956139564514,
"Red Component" : 0.27671992778778076,
"Blue Component" : 0.38298487663269043
},
"Ambiguous Double Width" : false,
"Jobs to Ignore" : [
"rlogin",
"ssh",
"slogin",
"telnet"
],
"Show Status Bar" : true,
"Ansi 15 Color" : {
"Green Component" : 0.95794391632080078,
"Red Component" : 0.98943418264389038,
"Blue Component" : 0.86405980587005615
},
"Foreground Color" : {
"Green Component" : 0.50962930917739868,
"Red Component" : 0.44058024883270264,
"Blue Component" : 0.51685798168182373
},
"Working Directory" : "\/Users\/williammathewson",
"Blinking Cursor" : false,
"Disable Window Resizing" : true,
"Sync Title" : false,
"Prompt Before Closing 2" : false,
"BM Growl" : true,
"Mouse Reporting" : true,
"Command" : "",
"Description" : "Default",
"Screen" : -1,
"Selection Color" : {
"Green Component" : 0.15575926005840302,
"Red Component" : 0,
"Blue Component" : 0.19370138645172119
},
"Columns" : 80,
"Idle Code" : 0,
"Ansi 13 Color" : {
"Green Component" : 0.33896297216415405,
"Red Component" : 0.34798634052276611,
"Blue Component" : 0.72908437252044678
},
"Custom Command" : "No",
"ASCII Anti Aliased" : true,
"Non Ascii Font" : "Monaco 12",
"Vertical Spacing" : 1,
"Use Bold Font" : true,
"Option Key Sends" : 0,
"Selected Text Color" : {
"Green Component" : 0.56485837697982788,
"Red Component" : 0.50599193572998047,
"Blue Component" : 0.56363654136657715
},
"Background Color" : {
"Green Component" : 0.11783610284328461,
"Red Component" : 0,
"Blue Component" : 0.15170273184776306
},
"Character Encoding" : 4,
"Ansi 11 Color" : {
"Green Component" : 0.40717673301696777,
"Red Component" : 0.32436618208885193,
"Blue Component" : 0.43850564956665039
},
"Use Italic Font" : true,
"Unlimited Scrollback" : true,
"Keyboard Map" : {
"0xf700-0x260000" : {
"Text" : "[1;6A",
"Action" : 10
},
"0x37-0x40000" : {
"Text" : "0x1f",
"Action" : 11
},
"0x32-0x40000" : {
"Text" : "0x00",
"Action" : 11
},
"0xf709-0x20000" : {
"Text" : "[17;2~",
"Action" : 10
},
"0xf70c-0x20000" : {
"Text" : "[20;2~",
"Action" : 10
},
"0xf729-0x20000" : {
"Text" : "[1;2H",
"Action" : 10
},
"0xf72b-0x40000" : {
"Text" : "[1;5F",
"Action" : 10
},
"0xf705-0x20000" : {
"Text" : "[1;2Q",
"Action" : 10
},
"0xf703-0x260000" : {
"Text" : "[1;6C",
"Action" : 10
},
"0xf700-0x220000" : {
"Text" : "[1;2A",
"Action" : 10
},
"0xf701-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x42",
"Action" : 11
},
"0x38-0x40000" : {
"Text" : "0x7f",
"Action" : 11
},
"0x33-0x40000" : {
"Text" : "0x1b",
"Action" : 11
},
"0xf703-0x220000" : {
"Text" : "[1;2C",
"Action" : 10
},
"0xf701-0x240000" : {
"Text" : "[1;5B",
"Action" : 10
},
"0xf70d-0x20000" : {
"Text" : "[21;2~",
"Action" : 10
},
"0xf702-0x260000" : {
"Text" : "[1;6D",
"Action" : 10
},
"0xf729-0x40000" : {
"Text" : "[1;5H",
"Action" : 10
},
"0xf706-0x20000" : {
"Text" : "[1;2R",
"Action" : 10
},
"0x34-0x40000" : {
"Text" : "0x1c",
"Action" : 11
},
"0xf700-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x41",
"Action" : 11
},
"0x2d-0x40000" : {
"Text" : "0x1f",
"Action" : 11
},
"0xf70e-0x20000" : {
"Text" : "[23;2~",
"Action" : 10
},
"0xf702-0x220000" : {
"Text" : "[1;2D",
"Action" : 10
},
"0xf703-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x43",
"Action" : 11
},
"0xf700-0x240000" : {
"Text" : "[1;5A",
"Action" : 10
},
"0xf707-0x20000" : {
"Text" : "[1;2S",
"Action" : 10
},
"0xf70a-0x20000" : {
"Text" : "[18;2~",
"Action" : 10
},
"0x35-0x40000" : {
"Text" : "0x1d",
"Action" : 11
},
"0xf70f-0x20000" : {
"Text" : "[24;2~",
"Action" : 10
},
"0xf703-0x240000" : {
"Text" : "[1;5C",
"Action" : 10
},
"0xf701-0x260000" : {
"Text" : "[1;6B",
"Action" : 10
},
"0xf702-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x44",
"Action" : 11
},
"0xf72b-0x20000" : {
"Text" : "[1;2F",
"Action" : 10
},
"0x36-0x40000" : {
"Text" : "0x1e",
"Action" : 11
},
"0xf708-0x20000" : {
"Text" : "[15;2~",
"Action" : 10
},
"0xf701-0x220000" : {
"Text" : "[1;2B",
"Action" : 10
},
"0xf70b-0x20000" : {
"Text" : "[19;2~",
"Action" : 10
},
"0xf702-0x240000" : {
"Text" : "[1;5D",
"Action" : 10
},
"0xf704-0x20000" : {
"Text" : "[1;2P",
"Action" : 10
}
},
"Window Type" : 0,
"Background Image Location" : "",
"Blur" : false,
"Badge Color" : {
"Red Component" : 1,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 0.5,
"Green Component" : 0.1491314172744751
},
"Scrollback Lines" : 0,
"Send Code When Idle" : false,
"Close Sessions On End" : true,
"Terminal Type" : "xterm-256color",
"Visual Bell" : true,
"Flashing Bell" : true,
"Status Bar Layout" : {
"components" : [
{
"class" : "iTermStatusBarWorkingDirectoryComponent",
"configuration" : {
"knobs" : {
"path" : "path",
"minwidth" : 0,
"shared text color" : {
"Red Component" : 0.90000000000000002,
"Color Space" : "sRGB",
"Blue Component" : 0.63,
"Alpha Component" : 1,
"Green Component" : 0.63
},
"base: priority" : 5,
"base: compression resistance" : 1,
"maxwidth" : 1.7976931348623157e+308
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarGitComponent",
"configuration" : {
"knobs" : {
"base: compression resistance" : 1,
"iTermStatusBarGitComponentPollingIntervalKey" : 2,
"base: priority" : 5,
"minwidth" : 0,
"shared text color" : {
"Red Component" : 0.90000000000000002,
"Color Space" : "sRGB",
"Blue Component" : 0.63,
"Alpha Component" : 1,
"Green Component" : 0.84060000000000001
},
"maxwidth" : 1.7976931348623157e+308
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarJobComponent",
"configuration" : {
"knobs" : {
"base: compression resistance" : 1,
"base: priority" : 5,
"shared text color" : {
"Red Component" : 0.74880000000000002,
"Color Space" : "sRGB",
"Blue Component" : 0.63,
"Alpha Component" : 1,
"Green Component" : 0.90000000000000002
},
"minwidth" : 0,
"maxwidth" : 1.7976931348623157e+308
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarMemoryUtilizationComponent",
"configuration" : {
"knobs" : {
"base: priority" : 5,
"shared text color" : {
"Red Component" : 0.63,
"Color Space" : "sRGB",
"Blue Component" : 0.7218,
"Alpha Component" : 1,
"Green Component" : 0.90000000000000002
},
"base: compression resistance" : 1
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarCPUUtilizationComponent",
"configuration" : {
"knobs" : {
"base: priority" : 5,
"base: compression resistance" : 1,
"shared text color" : {
"Red Component" : 0.63,
"Color Space" : "sRGB",
"Blue Component" : 0.90000000000000002,
"Alpha Component" : 1,
"Green Component" : 0.86760000000000004
}
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarSpringComponent",
"configuration" : {
"knobs" : {
"iTermStatusBarSpringComponentSizeMultipleKey" : 4,
"shared text color" : {
"Red Component" : 0.63,
"Color Space" : "sRGB",
"Blue Component" : 0.90000000000000002,
"Alpha Component" : 1,
"Green Component" : 0.65700000000000003
}
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarComposerComponent",
"configuration" : {
"knobs" : {
"base: priority" : 5,
"base: compression resistance" : 1,
"shared text color" : {
"Red Component" : 0.81359999999999999,
"Color Space" : "sRGB",
"Blue Component" : 0.90000000000000002,
"Alpha Component" : 1,
"Green Component" : 0.63
}
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
},
{
"class" : "iTermStatusBarClockComponent",
"configuration" : {
"knobs" : {
"localize" : 1,
"base: priority" : 5,
"base: compression resistance" : 1,
"shared text color" : {
"Red Component" : 0.90000000000000002,
"Color Space" : "sRGB",
"Blue Component" : 0.77580000000000005,
"Alpha Component" : 1,
"Green Component" : 0.63
},
"format" : "dd\/M HH:mm"
},
"layout advanced configuration dictionary value" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
}
}
],
"advanced configuration" : {
"remove empty components" : false,
"font" : ".AppleSystemUIFont 12",
"algorithm" : 0,
"auto-rainbow style" : 3
}
},
"Silence Bell" : false,
"Ansi 14 Color" : {
"Green Component" : 0.56485837697982788,
"Red Component" : 0.50599193572998047,
"Blue Component" : 0.56363654136657715
},
"ASCII Ligatures" : false,
"Name" : "Default",
"Cursor Text Color" : {
"Green Component" : 0.15575926005840302,
"Red Component" : 0,
"Blue Component" : 0.19370138645172119
},
"Shortcut" : "",
"Cursor Color" : {
"Green Component" : 0.50962930917739868,
"Red Component" : 0.44058024883270264,
"Blue Component" : 0.51685798168182373
},
"Transparency" : 0,
"Ansi 0 Color" : {
"Green Component" : 0.15575926005840302,
"Red Component" : 0,
"Blue Component" : 0.19370138645172119
},
"Guid" : "E1E2FC0E-C2DF-4B72-9A97-E9509CC6599C",
"Ansi 3 Color" : {
"Green Component" : 0.46751424670219421,
"Red Component" : 0.64746475219726562,
"Blue Component" : 0.023484811186790466
},
"Horizontal Spacing" : 1,
"Right Option Key Sends" : 0,
"Use Non-ASCII Font" : false,
"Ansi 6 Color" : {
"Green Component" : 0.57082360982894897,
"Red Component" : 0.14679534733295441,
"Blue Component" : 0.52502274513244629
},
"Normal Font" : "HackNerdFontComplete-Regular 14",
"Ansi 2 Color" : {
"Green Component" : 0.54115492105484009,
"Red Component" : 0.44977453351020813,
"Blue Component" : 0.020208755508065224
},
"Ansi 4 Color" : {
"Green Component" : 0.46265947818756104,
"Red Component" : 0.12754884362220764,
"Blue Component" : 0.78231418132781982
},
"Ansi 5 Color" : {
"Green Component" : 0.10802463442087173,
"Red Component" : 0.77738940715789795,
"Blue Component" : 0.43516635894775391
}
}
# set your user tokens as environment variables, such as ~/.secrets
# See the README for examples.
[color]
ui = true
all = true
pager = true
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red
new = green
[alias]
# add
a = add # add
chunkyadd = add --patch # stage commits chunk by chunk
# update index
assume = update-index --assume-unchanged
unassume = update-index --no-assume-unchanged
assumed = "!git ls-files -v | grep ^h | cut -c3-"
# via http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/
snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}"
snapshots = !git stash list --grep snapshot
# via http://stackoverflow.com/questions/5188320/how-can-i-get-a-list-of-git-branches-ordered-by-most-recent-commit
recent-branches = !git for-each-ref --count=5 --sort=-committerdate refs/heads/ --format='%(refname:short)'
# branch
b = branch -v # branch (verbose)
ppt = "!git checkout -b $(git branch --show-current)-ppt"
# commit
c = commit -m # commit with message
ca = commit -am # commit all with message
ci = commit # commit
amend = commit --amend # ammend your last commit
ammend = commit --amend # ammend your last commit
fixup = !git commit --fixup $(git log --oneline -20 --pretty='%h %s' | fzf --reverse --height 20% | awk '{print $1}')
# checkout
co = checkout # checkout
nb = checkout -b # create and switch to a new branch (mnemonic: "git new branch branchname...")
# cherry-pick
cp = cherry-pick -x # grab a change from a branch
# diff
d = diff # diff unstaged changes
dc = diff --cached # diff staged changes
last = diff HEAD^ # diff last committed change
# log
l = log --graph --date=short
changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status
short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\"
simple = log --pretty=format:\" * %s\"
shortnocolor = log --pretty=format:\"%h %cr %cn %s\"
# pull
pl = pull # pull
# push
ps = push # push
# rebase
rc = rebase --continue # continue rebase
rs = rebase --skip # skip rebase
# remote
r = remote -v # show remotes (verbose)
# reset
unstage = reset HEAD # remove files from index (tracking)
uncommit = reset --soft HEAD^ # go back before last commit, with files in uncommitted state
filelog = log -u # show changes to a file
mt = mergetool # fire up the merge tool
# stash
ss = stash # stash changes
sl = stash list # list stashes
sa = stash apply # apply stash (restore changes)
sd = stash drop # drop stashes (destory changes)
# status
s = status # status
st = status # status
stat = status # status
# tag
t = tag -n # show tags with <n> lines of each tag message
# svn helpers
svnr = svn rebase
svnd = svn dcommit
svnl = svn log --oneline --show-commit
[format]
pretty = format:%C(blue)%ad%Creset %C(yellow)%h%C(green)%d%Creset %C(blue)%s %C(magenta) [%an]%Creset
[mergetool]
prompt = false
[merge]
summary = true
verbosity = 1
[apply]
whitespace = nowarn
[branch]
autosetupmerge = true
[push]
# 'git push' will push the current branch to its tracking branch
# the usual default is to push all branches
default = current
[core]
autocrlf = input
pager = "{ \
COLUMNS=$(tput cols); \
if [ $COLUMNS -ge 80 ] && [ -z $FZF_PREVIEW_COLUMNS ]; then \
delta --side-by-side -w $COLUMNS; \
elif [ $COLUMNS -ge 160 ] && [ ! -z $FZF_PREVIEW_COLUMNS ]; then \
delta --side-by-side -w $FZF_PREVIEW_COLUMNS; \
else \
delta; \
fi \
}"
editor = nvim
excludesFile = /Users/williammathewson/.config/git/ignore
[advice]
statusHints = false
[diff]
# Git diff will use (i)ndex, (w)ork tree, (c)ommit and (o)bject
# instead of a/b/c/d as prefixes for patches
mnemonicprefix = true
algorithm = patience
indentHeuristic = true
colorMoved = default
[rerere]
# Remember my merges
# http://gitfu.wordpress.com/2008/04/20/git-rerere-rereremember-what-you-did-last-time/
enabled = true
[include]
path = .gitconfig.user
[user]
name = Will Mathewson
email = william.mathewson@freeagent.com
signingKey = 3AC4B3555F9626C7
[github]
user = neanias
[fetch]
prune = true
[stash]
showPatch = true
[commit]
gpgSign = true
verbose = true
[pull]
ff = only
[url "git@github.com:"]
insteadOf = https://github.com/
[delta]
syntax-theme = Solarized (dark)
side-by-side = true
line-numbers = true
[interactive]
diffFilter = delta --color-only
[init]
defaultBranch = main
[maintenance]
repo = /Users/williammathewson/Programming/freeagent
# OSX taken from: https://github.com/github/gitignore/blob/master/Global/OSX.gitignore
# ----------------------------------------------------------------------------------------------
.DS_Store
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Windows taken from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
# ----------------------------------------------------------------------------------------------
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
# Tags taken from: https://github.com/github/gitignore/blob/master/Global/Tags.gitignore
# ----------------------------------------------------------------------------------------------
# Ignore tags created by etags and ctags
TAGS
tags
tags.lock
tags.temp
tags.temp.tmp
# Vim taken from: https://github.com/github/gitignore/blob/master/Global/vim.gitignore
# ----------------------------------------------------------------------------------------------
.*.sw[a-z]
*.un~
Session.vim
# SASS
# ----------------------------------------------------------------------------------------------
.sass-cache
# JetBrains taken from: https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
*.iml
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
# Emacs
# ----------------------------------------------------------------------------------------------
# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*
# Org-mode
.org-id-locations
*_archive
# flymake-mode
*_flymake.*
# eshell files
/eshell/history
/eshell/lastdir
# elpa packages
/elpa/
# reftex files
*.rel
# AUCTeX auto folder
/auto/
# cask packages
.cask/
dist/
# Flycheck
flycheck_*.el
# server auth directory
/server/
# projectiles files
.projectile
config/definitions.rb
format = """
$username\
$hostname\
$directory\
$git_branch\
$git_commit\
$git_state\
$git_metrics\
$git_status\
$docker_context\
$package\
$deno\
$elixir\
$erlang\
$lua\
$nodejs\
$python\
$ruby\
$rust\
$swift\
$terraform\
$memory_usage\
$aws\
$cmd_duration\
$line_break\
$jobs\
$battery\
$time\
$status\
$shell\
$character"""
[directory]
repo_root_style = "green bold"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment