Last active
June 20, 2018 06:44
-
-
Save yakimelon/dfe1a8d6baef6304fc341ece7ceddd30 to your computer and use it in GitHub Desktop.
.zshrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#*** カレントディレクトリを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