Skip to content

Instantly share code, notes, and snippets.

@yakimelon
Last active June 20, 2018 06:44
Show Gist options
  • Save yakimelon/dfe1a8d6baef6304fc341ece7ceddd30 to your computer and use it in GitHub Desktop.
Save yakimelon/dfe1a8d6baef6304fc341ece7ceddd30 to your computer and use it in GitHub Desktop.
.zshrc
#*** カレントディレクトリをTerminal(&タブ)のタイトルに表示 ********************
function changetitle {
# pwdを二回も実行しているのがなんかダサい...
current_dir=`pwd | sed -e "s%\(/\([^.]\|\..\)\)[^/]*%\1%g"``pwd | sed -e "s%^.*/\([^.]\|\..\)\([^/]*\)$%\2%"`
# タイトル用に整形
title=[${USER}]${current_dir}
case "${TERM}" in
xterm*|kterm*|rxvt*)
echo -ne "\033]0;${title}\007"
;;
screen*)
echo -ne "\033P\033]0;${title}\007\033\\"
;;
esac
}
# zsh起動時にとりあえず実行
changetitle
# cd実行後に変更
function chpwd() {
changetitle
}
# Screenの場合、window切り替え時に前のwindowのタイトルがTerminal(&タブ)のタイトルとして
# 残ってしまうのでせめてcdコマンド以外のコマンドでも実行前にタイトルを変更
preexec () {
changetitle
}
#**********************************************************************
#*** 右端のカレントディレクトリ表示を消す *********************
PROMPT=$BLUE'[${USER}@${HOST}] %(!.#.$) '$WHITE
RPROMPT=$GREEN'[%~]'$WHITE
setopt transient_rprompt
#**************************************************************
# Emacs ライクな操作を有効にする(文字入力中に Ctrl-F,B でカーソル移動など)
# Vi ライクな操作が好みであれば `bindkey -v` とする
bindkey -e
# 自動補完を有効にする
# コマンドの引数やパス名を途中まで入力して <Tab> を押すといい感じに補完してくれる
# 例: `cd path/to/<Tab>`, `ls -<Tab>`
autoload -U compinit; compinit
# 入力したコマンドが存在せず、かつディレクトリ名と一致するなら、ディレクトリに cd する
# 例: /usr/bin と入力すると /usr/bin ディレクトリに移動
setopt auto_cd
# ↑を設定すると、 .. とだけ入力したら1つ上のディレクトリに移動できるので……
# 2つ上、3つ上にも移動できるようにする
alias ...='cd ../..'
alias ....='cd ../../..'
# "~hoge" が特定のパス名に展開されるようにする(ブックマークのようなもの)
# 例: cd ~hoge と入力すると /long/path/to/hogehoge ディレクトリに移動
# hash -d hoge=/long/path/to/hogehoge
# cd した先のディレクトリをディレクトリスタックに追加する
# ディレクトリスタックとは今までに行ったディレクトリの履歴のこと
# `cd +<Tab>` でディレクトリの履歴が表示され、そこに移動できる
setopt auto_pushd
# pushd したとき、ディレクトリがすでにスタックに含まれていればスタックに追加しない
setopt pushd_ignore_dups
# 拡張 glob を有効にする
# glob とはパス名にマッチするワイルドカードパターンのこと
# (たとえば `mv hoge.* ~/dir` における "*")
# 拡張 glob を有効にすると # ~ ^ もパターンとして扱われる
# どういう意味を持つかは `man zshexpn` の FILENAME GENERATION を参照
setopt extended_glob
# 同時に起動したzshの間でヒストリを共有する
setopt share_history
# 入力したコマンドがすでにコマンド履歴に含まれる場合、履歴から古いほうのコマンドを削除する
# コマンド履歴とは今まで入力したコマンドの一覧のことで、上下キーでたどれる
setopt hist_ignore_all_dups
# コマンドがスペースで始まる場合、コマンド履歴に追加しない
# 例: <Space>echo hello と入力
setopt hist_ignore_space
# ^Dでzshを終了しない
setopt IGNORE_EOF
# ^Q/^Sのフローコントロールを無効にする
setopt NO_FLOW_CONTROL
# beep音を鳴らさない
setopt NO_BEEP
# <Tab> でパス名の補完候補を表示したあと、
# 続けて <Tab> を押すと候補からパス名を選択できるようになる
# 候補を選ぶには <Tab> か Ctrl-N,B,F,P
zstyle ':completion:*:default' menu select=2
# 補完時に大文字小文字を区別しない
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
# ヒストリの入力補完
autoload -Uz history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^o" history-beginning-search-backward-end
bindkey "^p" history-beginning-search-forward-end
# コマンド履歴の保存
HISTFILE=~/.zsh_history
HISTSIZE=1000000
SAVEHIST=1000000
# 単語の一部として扱われる文字のセットを指定する
# ここではデフォルトのセットから / を抜いたものとする
# こうすると、 Ctrl-W でカーソル前の1単語を削除したとき、 / までで削除が止まる
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
# プロンプトに関する設定
PROMPT="[%n@%m]"
RPROMPT="[%~]"
# rbenv jenv の初期化
export PATH="$HOME/.rbenv/shims:$HOME/.rbenv/bin:/usr/local/bin:$PATH"
# eval "$(rbenv init - zsh)"
#-----------------------Plugin-----------------------------
# プラグイン管理
if [[ -f $HOME/.zsh/antigen/antigen.zsh ]]; then
source $HOME/.zsh/antigen/antigen.zsh
antigen bundle zsh-users/zsh-completions src
antigen bundle zsh-users/zsh-syntax-highlighting
antigen apply
fi
# 追加のalias
alias ll='ls -la'
alias fd='cd ~/flipdesk.jp;sudo nginx;sudo bin/rails s'
alias cc='cd ~/flipdesk-contents;sudo bundle exec rails s -p 8080'
alias nx='cd ~/flipdesk-nexus-proto;AWS_SECRET_KEY=dummy;AWS_ACCESS_KEY_ID=dummy sbt -mem 2048 ";project nexus-api;~run" -jvm-debug 5005'
alias ka='docker run -p 11212:11212 katsubushi/katsubushi'
alias vc='networksetup -connectpppoeservice "FD VPN"'↲
alias vd='networksetup -disconnectpppoeservice "FD VPN"'↲
alias th='tw @ice_arr'
# SanDeGo関連のalias
alias s='~/development/crypt/feature-sandego/SanDeGo/src/sandegod'
alias sb='~/development/crypt/feature-sandego/SanDeGo/src/sandegod getbalance'
alias sl='~/development/crypt/feature-sandego/SanDeGo/src/sandegod listreceivedbyaddress 1 true'
alias ss='~/development/crypt/feature-sandego/SanDeGo/src/sandegod sendtoaddress'
function peco-history-selection() {
BUFFER=`history -n 1 | tail -r | awk '!a[$0]++' | peco`
CURSOR=$#BUFFER
zle reset-prompt
}
zle -N peco-history-selection
bindkey '^R' peco-history-selection
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/allen/.sdkman"
[[ -s "/Users/allen/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/allen/.sdkman/bin/sdkman-init.sh"
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8"`
PATH=$JAVA_HOME/bin:$PATH
export PATH=$PATH:/Users/allen/.nodebrew/current/bin
# MacPorts Installer addition on 2018-04-22_at_05:47:12: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts.
# GoLang
export GOPATH=$HOME/.go
export PATH=$PATH:$GOPATH/bin
# AWS
export AWS_REGION=ap-northeast-1
export PATH="/Users/allen/Library/Python/2.7/bin:$PATH"
# OculusGo
export PATH=$PATH:/Users/allen/Library/Android/sdk/platform-tools
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment