Help us understand the problem. What is going on with this article?

Web系だけど.zshrc晒す

More than 1 year has passed since last update.

この記事は @HibikineCode 1人 Advent Calendar 2018 の1日目の記事です。

Zshはいいぞ! いろんなシェルのいいところ取り入れた、かしこいシェル!

ソース: .zshrc

なんでZsh使うようになったの

最初はおとなしくBash使ってました。「お前らのターミナルはダサい」で快適そうなターミナルを見てプラグインとか入れたくなり、ZshにPrezto入れて使い始めました。

一回fishに浮気したんですがWSLとの相性が最悪で(文字化けしたり入力周りがおかしくなったりする)やめました。

で、今ではZshに戻ってきて、管理のめんどくさいPrezto使うのをやめ、Zplugで必要なものだけ入れている今のスタイルに落ち着いてます。

プラグインマネージャー: zplug

プラグインマネージャーは、最初はPrezto使って色々入れてたんですが今ではZplugでシンプルに必要なものだけ入れてます。

プラグイン

こんな感じ。

zplug "zplug/zplug", hook-build:"zplug --self-manage"↲
zplug "mafredri/zsh-async"↲
zplug "sindresorhus/pure"↲
zplug "rupa/z", use:z.sh↲
zplug "mollifier/cd-gitroot"↲
zplug "b4b4r07/enhancd", use:init.sh↲
zplug "b4b4r07/zsh-gomi", if:"which fzf"↲
zplug "zsh-users/zsh-syntax-highlighting"↲
zplug "zsh-users/zsh-autosuggestions"↲
zplug "zsh-users/zsh-history-substring-search", defer:2↲
zplug "zsh-users/zsh-completions"↲
zplug "chrissicool/zsh-256color"↲
zplug "junegunn/fzf-bin", as:command, from:gh-r, rename-to:fzf↲
zplug "peco/peco", as:command, from:gh-r, use:"*amd64*"↲
zplug "mrowa44/emojify", as:command↲
zplug "stedolan/jq", from:gh-r, as:command, on:b4b4r07/emoji-cli, if:"which jq"
zplug "walesmd/caniuse.plugin.zsh"↲
zplug "liangguohuan/zsh-dircolors-solarized"↲
zplug "felixr/docker-zsh-completion"↲

ほんとに必要なものをって感じで入れてます。

zsh-async

Zshくんが非同期処理できるようになる。

pure

ミニマルなプロンプト。次項で詳しく解説。

z

先頭にzって入れて後ろにパス名入れるといい感じに飛べるやつ。ちょっと今となってはレガシーかな? でも便利。

cd-gitroot

cd-gitrootでgitのルートフォルダに飛べる。

enhancd

過去に開いたディレクトリを記憶して、任意のディレクトリに飛べるようになるどこでもドア。クソ便利。

zsh-gomi

CLIごみ箱。

zsh-syntax-highlighting

コマンドに色付けくん

zsh-autosuggestions

過去に入力したコマンドの履歴が灰色のサジェストで出る。便利。

zsh-history-substring-search

コマンド入力途中で上下キー押したときの過去履歴がいい感じに出るようになる。

zsh-completions

補完強化

zsh-256color

256色表示にする

fzf-bin

CLIのファインダーfzfをzplug経由で落としてくる。

peco

pecoを(以下略

emojify

:muscle:を💪にする✨

% echo ':muscle:' | emojify
💪

% git log | emojify

みたいな

jq

CLIのJSONプロセッサ

caniuse.plugin.zsh

ブラウザの対応状況「caniuse.com」のページを開いてくれる

% caniuse webgl

zsh-dircolors-solarized

ディレクトリの色をきれいにする

docker-zsh-completion

DockerのZsh補完

プロンプト: pure

2行になるのがほんとすき。毎回入力してる部分がガタガタ動かないのでよいです。
image.png

.dotzconfig

[ -f ~/.dotzconfig ] && source ~/.dotzconfig

ローカルでしか使わないzshの設定を入れてるファイル。

gi

function gi() { curl -L -s https://www.gitignore.io/api/$@ ;}

gitignoreを生成する。

% gi node >> .gitignore

alias

ご覧の通り。

# Aliases
alias cd..="cd .."
alias winsrc="cd /mnt/c/Users/Kage/src/"
alias winHome="cd /mnt/c/Users/$USER/"
alias owcl="cd /mnt/e/ownCloud/"
alias ch="cd ~/src/cheetah_app/"
alias chdocker="cd ~/src/cheetah_app/web/cheetah_docker/ && docker-compose up -d"
alias chwatch="cd ~/src/cheetah_app/web/ && yarn watch"
alias getmyip="curl inet-ip.info"
export PATH="$PATH:$HOME/.cargo/bin:/home/linuxbrew/.linuxbrew/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/.local/bin"
alias grep='grep --color'
alias df='df -h'
alias dusc='du -s -c *'

alias untgz='tar -xzvf'
alias untbz='tar -xjvf'

# ls aliases
if [ "$(uname)" = 'Darwin' ]; then
    # export LSCOLORS=xbfxcxdxbxegedabagacad
    alias ls='ls -G'
else
    # eval `dircolors ~/.colorrc`
    alias ls='ls --color=auto'
fi
alias ll='ls -la --color=auto'
alias la='ls -la --color=auto'
alias sl='ls'

# git aliases
alias hyperlog="git log --oneline --graph --decorate=full"
alias lg=hyperlog
alias gaa='git add --all'
alias gc='git checkout'
alias gcb='git checkout -b'
alias gs='git status'
alias gst='git status'
alias gb='git branch'
alias gcm='git checkout master'
alias gpu='git pull'
alias gpom='git pull origin master'
alias gmm='git merge master'
alias gcdf='git clean -df'
alias gp='git push'
alias gco='git commit'
alias gcom='git commit -m'
alias ga='git add'

# proxy aliases
alias setproxy='git config --file ~/.gitconfig.local http.proxy proxyurl.hogehoge.jp:10080 && git config --file ~/.gitconfig.local https.proxy proxyurl.hogehoge.jp:10080 && sed -i -e "s/#ProxyCommand connect -H proxyurl.hogehoge.jp:10080 %h %p/ProxyCommand connect -H proxyurl.hogehoge.jp:10080 %h %p/" ~/.ssh/config && export http_proxy=http://proxyurl.hogehoge.jp:10080 && export https_proxy=http://proxyurl.hogehoge.jp:10080'
alias setdockerproxy='sudo sed -i -e "s/#export http_proxy=http:\/\/proxyurl.hogehoge.jp:10080/export http_proxy=http:\/\/proxyurl.hogehoge.jp:10080/" /etc/default/docker && sudo sed -i -e "s/#export https_proxy=https:\/\/proxyurl.hogehoge.jp:10080/export https_proxy=http:\/\/proxyurl.hogehoge.jp:10080/" /etc/default/docker'
alias unsetproxy='git config --file ~/.gitconfig.local --unset http.proxy && git config --file ~/.gitconfig.local --unset https.proxy && sed -i -e "s/ProxyCommand connect -H proxyurl.hogehoge.jp:10080 %h %p/#ProxyCommand connect -H proxyurl.hogehoge.jp:10080 %h %p/" ~/.ssh/config && export http_proxy="" && export https_proxy=""'
alias setdockerproxy='sudo sed -i -e "s/#export http_proxy=http:\/\/proxyurl.hogehoge.jp:10080/export http_proxy=http:\/\/proxyurl.hogehoge.jp:10080/" /etc/default/docker && sudo sed -i -e "s/#export https_proxy=https:\/\/proxyurl.hogehoge.jp:10080/export https_proxy=http:\/\/proxyurl.hogehoge.jp:10080/" /etc/default/docker'
alias unsetdockerproxy='sudo sed -i -e "s/export http_proxy=http:\/\/proxyurl.hogehoge.jp:10080/#export http_proxy=http:\/\/proxyurl.hogehoge.jp:10080/" /etc/default/docker && sudo sed -i -e "s/export https_proxy=https:\/\/proxyurl.hogehoge.jp:10080/#export https_proxy=http:\/\/proxyurl.hogehoge.jp:10080/" /etc/default/docker'

getmyip

alias getmyip="curl inet-ip.info"

これ便利。

後いろいろ

パス通したり細かい設定の環境変数だったり。すごいことはやってないです。

まとめ

zsh いいよねって話でした。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away