Skip to content

Instantly share code, notes, and snippets.

@kotashiratsuka
Last active May 13, 2021 23:02
Show Gist options
  • Save kotashiratsuka/89fad9fd3edd2bec96a78dbc71c8d99b to your computer and use it in GitHub Desktop.
Save kotashiratsuka/89fad9fd3edd2bec96a78dbc71c8d99b to your computer and use it in GitHub Desktop.
# vim: set ff=unix tabstop=4 shiftwidth=0 softtabstop=-1 noexpandtab fileencoding=utf-8 fileformat=unix filetype=zsh :#
# https://gist.github.com/kotashiratsuka/89fad9fd3edd2bec96a78dbc71c8d99b
#/usr/local/binを優先
PATH=/usr/local/bin:$PATH
#${HOME}/binをパスに追加
PATH=${PATH}:~/bin
#MacPorsのvimを優先
EDITOR=`which vim`
#only mac
if [ "`uname`" = 'Darwin' ]; then
#MacPorts
PATH=/opt/local/bin:/opt/local/sbin:$PATH
#Vagrant
VAGRANT_DEFAULT_PROVIDER=vmware_fusion
#lesspipe.sh
LESSOPEN="`which lesspipe.sh` %s"
fi
#ProjectDirに移動して新しくshell&source
function p {
(
PROJ_DIR=$HOME/Git
cd $PROJ_DIR
if [ $1 ]; then
cd $PROJ_DIR/$1
else
cd `fd . -d 1 | fzf --height 40% --layout reverse-list --info inline --border --query "${1}"`
fi
PROJ_ROOT=`pwd`
exec $SHELL
)
}
# p コマンドでサブシェル、プロジェクト変数読み込み
if [ -f .git/hooks/project.sh ]; then
source .git/hooks/project.sh
fi
# iTerm2
if [[ -e ~/.iterm2_shell_integration.zsh ]]; then
source ~/.iterm2_shell_integration.zsh
fi
# Tmuxが起動されてなかったら起動する
if [[ -z $TMUX_PANE && $SSH_AUTH_SOCK && $SSH_CONNECTION ]] ;then
ID="$( tmux ls | grep -vm1 attached | cut -d: -f1 )"
if [[ -z $ID ]] ;then
tmux new-session
else
tmux attach-session -t "$ID"
fi
fi
# 自分の端末とリモートを区別しやすくする
#if [[ -z $TMUX_PANE ]] ;then
# #prompt fade magenta
# PROMPT=$'%F{magenta}%B%K{magenta}█▓▒░%F{white}%K{magenta}%B%n@%m%b%F{magenta}%K{black}█▓▒░%F{white}%K{black}%B \n%{\C-M%}%F{magenta}%K{black}%B%~/%b%k%f %# '
#else
# #prompt fade green
# PROMPT=$'%F{green}%B%K{green}█▓▒░%F{white}%K{green}%B%n@%m%b%F{green}%K{black}█▓▒░%F{white}%K{black}%B \n%{\C-M%}%F{green}%K{black}%B%~/%b%k%f %# '
#fi
# eDEX-UI ならカラー無効
#if [[ $TERM_PROGRAM == 'eDEX-UI' ]]; then
# TERM=vt220
#fi
#LSD
if $(type lsd >> /dev/null 2>&1); then
alias ll='lsd -l'
alias lla='lsd -la'
fi
#fzf
if [[ -f ~/.fzf.zsh ]]; then
source ~/.fzf.zsh
if $(ls --color=always >> /dev/null 2>&1); then
lscmd="ls -lFhG --color=always"
else
lscmd="CLICOLOR_FORCE=1 ls -lFhG"
fi
if [[ $REPORTTIME ]]; then
prefix="unset REPORTTIME && "
fi
if $(type bat >> /dev/null 2>&1); then
FZF_CTRL_T_OPTS="--preview '[[ \$(file --mime {}) =~ directory ]] && $lscmd {} || bat --color=always --style=header,grid --line-range :100 {}'"
else
FZF_CTRL_T_OPTS="--preview '[[ \$(file --mime {}) =~ directory ]] && $lscmd {} || head -100 {} 2> /dev/null || $lscmd {}'"
fi
FZF_DEFAULT_COMMAND="${prefix}fd -H -E .git"
FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
FZF_ALT_C_COMMAND="${prefix}fd --type d -H -E .git"
FZF_ALT_C_OPTS="--preview '$lscmd {}'"
bindkey '^[r' fzf-history-widget
bindkey '^R' history-incremental-pattern-search-backward
fi
#https://www.bigeekfan.com/post/20200705_z_in_zsh_with_cdr/
function z () {
local lines=$(cdr -l | grep --ignore-case "${1}")
if [ -z "$lines" ]; then
return 1
elif [ $(wc -l <<< "$lines") -eq 1 ]; then
cdr "${lines%% *}"
else
local selected_dir=$(cdr -l | fzf --height 40% --layout reverse-list --info inline --border --query "${1}")
if [ -n "$selected_dir" ]; then
cdr "${selected_dir%% *}"
fi
fi
}
# promptline
if [[ -e ~/.promptline.sh ]]; then
source ~/.promptline.sh
fi
# GnuPG
if [[ ! $GPG_TTY ]]; then
GPG_TTY=$(tty)
fi
# SSH Sockをtmux越しに動的に使う
if [[ "$SSH_AUTH_SOCK" && "$SSH_CONNECTION" ]]; then
ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment