Skip to content

Instantly share code, notes, and snippets.

@tomoyk
Last active August 27, 2023 01:32
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 tomoyk/79f5228d5aa9b24266e58353d1fca616 to your computer and use it in GitHub Desktop.
Save tomoyk/79f5228d5aa9b24266e58353d1fca616 to your computer and use it in GitHub Desktop.
# NOTE:
# font:
# https://github.com/miiton/Cica
# golang:
# https://golang.org/dl/
# zsh-completions:
# https://github.com/zsh-users/zsh-completions
# sudo apt install xsel figlet peco
# ghq:
# go get github.com/motemen/ghq
# PATHの設定
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
# zsh-completions
if type brew &>/dev/null; then
FPATH=/opt/homebrew/share/zsh-completions:$FPATH
source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
autoload -Uz compinit
compinit
fi
#予測入力
# autoload predict-on
# predict-on
# python
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
# export PATH="/opt/homebrew/opt/python@3.9/libexec/bin:$PATH"
# node
export PATH="$HOME/.nodenv/bin:$PATH"
eval "$(nodenv init -)"
# go
export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH/bin"
export PATH="$PATH:/opt/go/bin"
# homebrew
export PATH="/opt/homebrew/sbin:$PATH"
# krew
export PATH="${PATH}:${HOME}/.krew/bin"
# texlive
export PATH="${PATH}:/usr/local/texlive/2022/bin/universal-darwin"
launchctl setenv PATH $PATH
# エディタ
export EDITOR=vim
# 履歴ファイルの保存先
export HISTFILE=${HOME}/.zhistory
# メモリに保存される履歴の件数
export HISTSIZE=1000
# 履歴ファイルに保存される履歴の件数
export SAVEHIST=100000
# viキーバインド
bindkey -e
# インクリメンタルからの検索
bindkey "^R" history-incremental-search-backward
#入力途中の履歴補完を有効化する
autoload history-search-end
#/foo/barでいきなりcd
setopt AUTO_CD
#変数名を補完する
setopt AUTO_PARAM_KEYS
#echo {a-z}などを使えるようにする
setopt BRACE_CCL
#コマンドのスペルの訂正を使用する
setopt CORRECT
#引数のスペルの訂正を使用する
# setopt CORRECT_ALL
#aliasを展開して補完
setopt COMPLETE_ALIASES
#語の途中でもカーソル位置で補完
setopt COMPLETE_IN_WORD
#ヒストリに時刻情報もつける
setopt EXTENDED_HISTORY
# ワイルドカード展開を使用する
setopt extended_glob
#$0 にスクリプト名/シェル関数名を格納
setopt FUNCTION_ARGZERO
# 重複を記録しない
setopt hist_ignore_dups
# ヒストリに追加されるコマンド行が古いものと同じなら古いものを削除
setopt hist_ignore_all_dups
# ヒストリを呼び出してから実行する間に一旦編集可能
setopt hist_verify
# 余分な空白は詰めて記録
setopt hist_reduce_blanks
# 古いコマンドと同じものは無視
setopt hist_save_no_dups
# 履歴をインクリメンタルに追加
setopt inc_append_history
# historyを共有
setopt share_history
##
# Git Branch表示
##
# vcs_infoを読み込み
autoload -Uz vcs_info
# vcs_info_msg_0_変数をどのように表示するかフォーマットの指定
## デフォルトのフォーマット
### %s: どのバージョン管理システムを使っているか(git, svnなど)
### %b: ブランチ名
zstyle ':vcs_info:*' formats '(%s)[%b]'
## 特別な状態(mergeでコンフリクトしたときなど)でのフォーマット
### %a: アクション名(merge, rebaseなど)
zstyle ':vcs_info:*' actionformats '(%s)[%b|%a]'
# プロンプトが表示される毎にバージョン管理システムの情報を取得
## precmd: プロンプトが表示される毎に実行される関数
## vcs_info: バージョン管理システムから情報を取得
precmd () { vcs_info }
# 右プロンプトに表示
## prompt_subst: プロンプトを表示する際に変数を展開するオプション
setopt prompt_subst
## vcs_info_msg_0_: バージョン管理システムの情報
## RPROMPT: 右プロンプトに情報を表示するときの環境変数
RPROMPT=$RPROMPT'${vcs_info_msg_0_}'
##
# Alias
##
#
# base
alias dck='docker'
alias ls='ls -F'
alias ll='ls -laF'
alias la='ls -aF'
alias lns='ln -s'
alias emacs='vim'
alias sl='ls'
alias l='ls'
alias cdd='cd $_'
alias suod='sudo'
alias vm='vim'
alias g='git'
# overwrite
alias exiftool='exiftool -lang ja'
alias exiftool-all='exiftool -lang ja -all='
alias vim='vim -o'
# short-tool
alias simple="export PS1='$ '"
alias ports='netstat -antu | grep -i listen'
alias mkwdir='mkdir work_$(date +%Y%m%d); cd $_'
alias gpom='git push origin master'
alias py='python3'
alias jwhois="whois -h whois.jprs.jp"
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
# alias pbcopy="xsel --clipboard --input"
# alias pbcopy='clip.exe'
function pdf-unlock {
if [[ -z $2 ]]; then
echo -n "Password> "
read pdf_password
else
pdf_password="$2"
fi
pdftk $1 input_pw $pdf_password output output.pdf
}
# docker
alias docker-trr='docker run -it --rm tomoyk/docker-trr'
alias docker-php="docker run --rm -p 8000:80 -v ~/public_html:/var/www/html --name php7 -d php:7.0-apache"
# check sum
alias sha512sum='openssl dgst -sha512'
alias sha256sum='openssl dgst -sha256'
alias md5sum='md5'
alias k=kubectl
alias ether='ifconfig enp0s31f6'
function docker-ts {
curl -s https://registry.hub.docker.com/v1/repositories/$1/tags | sed "s/,/\n/g" | grep name | cut -d '"' -f 4
}
# prompt
# export PROMPT='%F{green}%n@%m%f:%~# '
# 色付け
autoload -Uz colors && colors
# powerline風
export PROMPT="%{${bg[white]}%}%{${fg[black]}%}%D{%Y-%m-%d %H:%M:%S} %~ %{${reset_color}%}%{${fg[white]}%} %{${reset_color}%}"
# peco git repository
function peco-src () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER" --prompt "REPOSITORY>")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-src
bindkey '^]' peco-src
# peco history
function peco-select-history() {
# historyを番号なし、逆順、最初から表示。
# 順番を保持して重複を削除。
# カーソルの左側の文字列をクエリにしてpecoを起動
# \nを改行に変換
BUFFER="$(history -nr 1 | awk '!a[$0]++' | peco --query "$LBUFFER" | sed 's/\\n/\n/')"
CURSOR=$#BUFFER # カーソルを文末に移動
zle -R -c # refresh
}
zle -N peco-select-history
bindkey '^R' peco-select-history
# peco git branch
function peco-select-branch() {
local selected_branch=$(git branch --list --no-color | colrm 1 2 | peco --prompt "BRANCH>")
if [ -n "$selected_branch" ]; then
BUFFER="git checkout ${selected_branch}"
zle accept-line
fi
}
zle -N peco-select-branch
bindkey '^B' peco-select-branch
# peco kubectx
function peco-kubectx() {
local kube_context=$(kubectx | peco --prompt "Kube Context>")
if [ -n "$kube_context" ]; then
BUFFER="kubectx ${kube_context}"
zle accept-line
fi
}
zle -N peco-kubectx
bindkey '^K' peco-kubectx
# peco kubens
function peco-kubens() {
local kube_ns=$(kubens | peco --prompt "Kube Namespace>")
if [ -n "$kube_ns" ]; then
BUFFER="kubens ${kube_ns}"
zle accept-line
fi
}
zle -N peco-kubens
bindkey '^N' peco-kubens
[[ /usr/bin/kubectl ]] && source <(kubectl completion zsh)
# add ssh-keys
eval $(ssh-agent -s)
find $HOME/.ssh -name id_\* | grep -v .pub | xargs ssh-add > /dev/null
alias pin1='ping 1.1.1.1'
chpwd(){ls}
export TERM=xterm-256color
alias thesis='code /Users/tkoyama/ghq/github.com/tomoyk/master-thesis'
export PATH="/opt/homebrew/opt/mysql-client/bin:$PATH"
export PATH="$HOME/.embulk/bin:$PATH"
function heic2jpg() {
if [ -z "$1" ]; then
echo "Invalid options"
exit 1
fi
fname=$(echo $1 | gsed 's/.HEIC$/.jpg/i')
sips -s format jpeg "$1" -o "$fname"
}
@tomoyk
Copy link
Author

tomoyk commented Mar 5, 2021

@tomoyk
Copy link
Author

tomoyk commented Nov 28, 2021

tmux.conf

set-option -g history-limit 1000
set-option -g mouse on

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment