ããã«ã¡ã¯ï¼ï¼ï¼
åºåäºæ¥æ¬é¨ã§ã¢ããªã±ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ããã¦ãã森ç°ã§ãï¼ï¼
ã¿ãªãããZsh使ã£ã¦ã¾ããï¼ï¼
åã¯æ¨å¹´ãæ°åã§å
¥ç¤¾ããã¿ã¤ãã³ã°ã§bashããä¹ãæãã¦ä½¿ãå§ãã¾ããã
æ¥åã§Macã使ç¨ããããã«ãªããã·ã§ã«ãç«ã¡ä¸ãããã³ã«ãããã©ã«ãZshãããä¹ãæãã¦ãªãçãªã¡ãã»ã¼ã¸ãåºã¦ããã®ãå«ã§ä¹ãæããã¨ã«ãªãã¾ãã...
ãã£ããã¨ãã¦ã¯ãã®éãååçãªãã®ã ã£ãã®ã§ããã使ã£ã¦ã¿ãã¨æå¤ã¨é«æ©è½ã§ãã©ã°ã¤ã³ãè±å¯ã§ä»¥åããããéçºä½é¨ãå¾ããã¨ãã§ãã¦ãã¾ãã
ä¹ãæããã¦ã®ãããã¾ããã®çãããã©ããªè¨å®ã«ãã¦ããã®ããªã¨æ°ã«ãªãã
ãã¾ãã·ã¥ã£ã¦ã©ããªè¨å®ã«ãã¦ã¾ããï¼ã
ã¨èãããã¨ããããå ´ãä¸ç¬ï¼ï¼ï¼ã¨ãªã£ããã¨ãããã¾ããã
ãã®ããã°ã§ã¯ãããªåãZshããºã£ã¼ã·ã§ã«ã¨èªããã¨ãç¥ããæ¥åã®ããã«Zshã®è¨å®ãã¡ã¤ã«.zshrc
ãããã£ã¦ããããã®ç©ã¿éãã®çµæãå
±æããã¦ããã ãã¾ãã
- ã¯ããã«
- æ¥åã§ä½¿ç¨ãã¦ãã.zshrcå¤§å ¬é
- 解説
- ä»å¾ãããããã¨
- ãããã«
ã¯ããã«
ãã®ããã°ã§ã¯ãæ°åå
¥ç¤¾ãã¦ç´1å¹´åã®åãå®éã«ä½¿ç¨ãã¦ãã.zshrc
ãæ¥ããããªãããå
¬éãããã®å¾ã軽ãè£è¶³ããæ°ã«å
¥ããã¤ã³ãã®ç´¹ä»ãããã¦ããã ãã¾ãã
ããããã·ã§ã«ã¨ã¯ä½ãï¼ãZshã.zshrc
ã¨ã¯ä½ãï¼ãZshã®ä¾¿å©ãªãã©ã°ã¤ã³ã®è©±ãªã©ã¯ãã®ããã°ã§ã¯ç´¹ä»ãããã¾ããã
ãªã®ã§ãä¸è¨ã®ãããªæ¹ã
ã¯ãã®ããã°ã®å
容ãåèã«ãªãããããã¾ããã
- æ¥åã§Zshã使ç¨ãã¦ããæ¹
- Zshã®ã«ã¹ã¿ãã¤ãºããã¦ã¿ããæ¹
éã«ä¸è¨ã®ãããªæ¹ã ã«ã¯ãã®è¨äºã®å 容ã¯åããªãããããã¾ããã
- ã·ã§ã«ï¼ï¼Zshï¼ï¼ä½ããï¼ï¼ã£ã¦æ¹
- fishããåããã¿ãããªæ¹
- Zshãã§ããã¯ã«ã«æ¹
æ¥åã§ä½¿ç¨ãã¦ãã.zshrc
大å
Ž
æ©éã§ãããåãå®éã«æ¥åã§ä½¿ç¨ãã¦ãã.zshrc
ã®ããã°ç¨ãå
¬éãããã¾ãã
# starship æå¹å ---------------------------------------------- eval "$(starship init zsh)" # è£å®æ©è½æå¹å ---------------------------------------------- autoload -Uz compinit compinit ## è£å®ã§å°æåã§ã大æåã«ãããããã =========================== zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' ## è£å®åè£ãä¸è¦§è¡¨ç¤ºããã¨ããTabãç¢å°ã§é¸æã§ããããã«ãã =========================== zstyle ':completion:*:default' menu select=1 ## sudo ã§è£å®æå¹å =========================== zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \ /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin # ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ãæå¹å ---------------------------------------------- source /opt/homebrew/opt/zsh-syntax-highlighting/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh # ãµã¸ã§ã¹ãæå¹å ---------------------------------------------- source /opt/homebrew/opt/zsh-autosuggestions/share/zsh-autosuggestions/zsh-autosuggestions.zsh # ã³ãã³ãå±¥æ´æ¤ç´¢ æå¹å ---------------------------------------------- function peco-history-selection() { BUFFER=`history -n 1 | tac | awk '!a[$0]++' | peco` CURSOR=$#BUFFER zle reset-prompt } zle -N peco-history-selection bindkey '^H' peco-history-selection ## å±¥æ´ä¿å管ç =========================== HISTFILE=$ZDOTDIR/.zsh-history HISTSIZE=100000 SAVEHIST=1000000 # rbenv æå¹å ---------------------------------------------- export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init - zsh)" # options ---------------------------------------------- setopt auto_cd # alias ---------------------------------------------- ## global =========================== alias -g G='| grep' alias -g H='| head' alias -g L='| less' alias -g C='| pbcopy' ## ls =========================== alias ls='ls -G' alias la='ls -a' alias ll='ls -alF' ## cd =========================== alias d='cd ~/dev' alias ~='cd ~' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias prj='cd ~/dev/project_root' alias playgorund='cd /Users/morita/local/playground' ## git =========================== alias g='git' alias ga='git add' alias gc='git commit -m' alias gac='git add . && git commit -m' alias gca='git commit --amend' alias gcan='git commit --amend --no-edit' alias gcam='git commit --amend -m' alias gr='git reset HEAD^' alias gco='git checkout' alias gs='git switch' alias gs-='git switch -' alias gl='git log --oneline' alias gb='git branch' alias gcp='git cherry-pick' alias main='git switch main' alias master='git switch master' ## docker =========================== alias da='docker attach' alias dc_='docker-compose' alias dup_='docker-compose up' alias de_='docker-compose exec' alias dc='docker compose' alias dup='docker compose up' alias de='docker compose exec' ### container =========================== #### rails alias crspec='docker compose exec rails bin/rspec' alias crs='docker compose exec rails bin/rspec $(git status -s "*_spec.rb" | cut -c4-)' alias crubocop='docker compose exec rails bundle exec rubocop' alias crb='docker compose exec rails bundle exec rubocop $(git status -s "*.rb" | cut -c4-)' alias crba='docker compose exec rails bundle exec rubocop -a $(git status -s "*.rb" | cut -c4-)' alias crbA='docker compose exec rails bundle exec rubocop -A $(git status -s "*.rb" | cut -c4-)' alias cconsole='docker compose exec rails bin/rails c' alias csandbox='docker compose exec rails bin/rails c --sandbox' alias cc='docker compose exec rails bin/rails c' alias crails='docker compose exec rails bin/rails' alias cdb='docker compose exec rails bin/rails db' alias cr='docker compose exec rails' alias crsh='docker compose exec rails bash' alias cspring='docker compose exec rails bin/spring' alias css='docker compose exec rails bin/spring server' alias csst='docker compose exec rails bin/spring stop' #### react alias cre='docker compose exec react' alias cresh='docker compose exec react bash' alias cnpm='docker compose exec react npm' alias ccheck='docker compose exec react npm run check' alias cfix='docker compose exec react npm run check:fix' alias cbuild='docker compose exec react npm run build' alias ctest='docker compose exec react npx vitest run' ## other =========================== alias python='python3' alias zshrc='code ~/.zshrc' # alias ssh='~/zsh/ssh-iterm-setting' # func ## ffmpeg cgif () { # convert to gif local ext=${2:-mov} local r=${3:-10} ffmpeg -i $1.$ext -r $r $1.gif } ## pbcopy cwc () { # copy with command local res=$(eval $@); echo $res local all="${@}\n\n${res}" echo $all | pbcopy } ## review review () { local cnt=$(gh pr list --search "review-requested:@me" | wc -l) if [ $cnt -eq 0 ]; then echo "No review request" else gh pr list --search "review-requested:@me" -w fi } # åæã«è¿½å ãããç³» ---------------------------------------------- ### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT) export PATH="/Users/morita/.rd/bin:$PATH" ### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT) export PATH="/opt/homebrew/opt/mysql-client/bin:$PATH" export PATH="/opt/homebrew/opt/curl/bin:$PATH" # The next line updates PATH for the Google Cloud SDK. if [ -f '/Users/morita/Downloads/google-cloud-sdk/path.zsh.inc' ]; then . '/Users/morita/Downloads/google-cloud-sdk/path.zsh.inc'; fi # The next line enables shell command completion for gcloud. if [ -f '/Users/morita/Downloads/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/morita/Downloads/google-cloud-sdk/completion.zsh.inc'; fi
解説
ããããã¯è£è¶³ãããæ°ã«å ¥ããã¤ã³ãã®ã話ããã¦ããã¾ãï¼ï¼
setopt
.zshrc
ã®setoptã§ãªãã·ã§ã³ããªã³ãªãã§ãããã§ããããªãã·ã§ã³ã®å
容ãman zshoptions
ã§ç¢ºèªã§ãã¾ãï¼ï¼
> man zshoptions ZSHOPTIONS(1) General Commands Manual ZSHOPTIONS(1) NAME zshoptions - zsh options ~~~ Changing Directories AUTO_CD (-J) If a command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory. This option is only applicable if the option SHIN_STDIN is set, i.e. if commands are being read from standard input. The option is designed for interactive use; it is recommended that cd be used explicitly in scripts to avoid ambiguity. ~~~
調ã¹ã¦ãæ£æçã§ç¶²ç¾ çã«ç¢ºèªããæ¹æ³ãåãããå°ã£ã¦ãã¾ãããã社å åãChatGPTã«èããã¨ããæãã¦ãããã¾ããï¼ï¼ä¾¿å©ï¼ï¼
ã¨ã¤ãªã¢ã¹
ããããã¯ã¨ã¤ãªã¢ã¹ã«ã¤ãã¦ã話ããã¦ããã¾ãï¼ï¼
詳ãã説æã¯çããã¦ããã ãã®ã§ãããã¨ã¤ãªã¢ã¹ãè¨å®ãããã¨ã§ã·ã§ã¼ãã«ããçã«ã³ãã³ããå®è¡ã§ãã¾ãï¼ï¼
ä¾ãã°alias g='git'
ã ã¨ä¸è¨2ã³ãã³ããåçã®æåããã¾ãã
> git switch blog
> g switch blog
ããã¸ã§ã¯ãã¸ã®cd
alias prj='cd ~/dev/project_root'
ãã®é¨åããæ°ã«å
¥ãã§ãï¼ï¼
ã©ã®ãã£ã¬ã¯ããªã«ãã¦ããããçãã³ãã³ãã§ç®çã®ãã£ã¬ã¯ããªã«è¡ãã¾ãï¼ï¼
è¤æ°ããã¸ã§ã¯ãã§ããããªãã£ã¬ã¯ããªã«è¡ã£ããããã®ã§æºè¶³åº¦ãé«ãã§ãï¼ï¼ï¼ï¼
è¨å®ãç°¡åã§ã³ã¹ããããã§ãã
ã³ã³ããå ã§ã³ãã³ãå®è¡
### container =========================== #### rails alias crspec='docker compose exec rails bin/rspec' ~~~
ãã®ãããã§ããããã®ã³ã³ããå ã§ã³ãã³ãå®è¡ããã¨ã¤ãªã¢ã¹ãä¸çªä½¿ã£ã¦ãããããããªãã§ãï¼ï¼
ç¾å¨é¢ãã£ã¦ããå
¨ã¦ã®éçºã§Dockerã使ç¨ãã¦ãããã³ã³ããå
ã§ã³ãã³ããå®è¡ããããã¨ãããããã¾ãã
ã§ãããæ®æ®µã¯ãã¹ãã§ã¤ã±ã¦ãããã³ããã®Zshã§ä½æ¥ãã¦ãã¾ãã
ã³ã³ããå
ã®ã·ã§ã«ãbashã§ä½ã®ã«ã¹ã¿ãã¤ãºããã¦ããªãã®ã§ãã³ã³ããå
ã®ã·ã§ã«ã«å
¥ãã ã㧠ãªãããªã ã¨ããæ°æã¡ã«ãªãã¾ãã
ã ããã¨ãã£ã¦æ¯å docker compose exec container_name ~~
ãã¿ã¤ãã³ã°ããã®ãé·ããã¦å¤§å¤ã§ãã
ããã§ããã使ãã³ãã³ããã¨ã¤ãªã¢ã¹è¨å®ãããã¨ã§ãã³ã³ããå
ã®ã·ã§ã«ã§æã¤ã³ãã³ãã¨åãé·ãããããçãã£ããããé·ãã§å®è¡ã§ãã¾ãï¼ï¼
ã¿ã¤ããæ¸ãããæé«ã§ãã
âââã¤ã±ã¦ãããã³ããã®Zshâââ
ã³ããããã¦ããªããã¡ã¤ã«ããªã³ãããã¹ã
alias crb='docker compose exec rails bundle exec rubocop $(git status -s "*.rb" | cut -c4-)'
ãã®git status -s "*.rb" | cut -c4-
ã®é¨åã§ãï¼ï¼
git status -s "*.æ¡å¼µå"
ã®é¨åã§ã³ããããã¦ããªãç¹å®ã®æ¡å¼µåã®ãã¡ã¤ã«ãã¹ãã¼ã¿ã¹ãä¼´ã£ã¦åå¾ãã¦ãã¾ãã
cut -c4-
ã§ãã¡ã¤ã«åã®ã¿ãæ½åºãã¦ãã¾ãã
ãããã¦å¾ããã¡ã¤ã«åã®ä¸è¦§ãããã§ã¯rubocopã«æ¸¡ãã¦ããªã³ãããã©ã¼ããããã¦ãã¾ãã
ä¸ãã¡ã¤ã«ãã¤ããã®ã¯ãªããªãæéããããã®ã§ãããéå®ãã¦ãã¾ãï¼ï¼
ãã ãåé¤ããããªãã¼ã ãããã¡ã¤ã«ãæã£ã¦ãã¡ããã®ã§ãããã§ã¨ã©ã¼ã«ãªã£ã¦ãã¾ãã¾ãã
伸ã³ä»£ã§ããã
é¢æ°
ããããã¯.zshrc
ã«å®ç¾©ãã¦ããé¢æ°ã«ã¤ãã¦ã話ããã¦ããã¾ãï¼ï¼
ããã§ãé¢æ°ã®è©³ç´°ã«ã¤ãã¦ã¯çããã¦ããã ãã®ã§ããã.zshrc
ã«é¢æ°ãå®ç¾©ãããã¨ã§ã³ãã³ãã£ã½ã使ããã¨ãã§ããããã«ãªãã¾ãã
review () { local cnt=$(gh pr list --search "review-requested:@me" | wc -l) if [ $cnt -eq 0 ]; then echo "No review request" else gh pr list --search "review-requested:@me" -w fi }
ä¾ãã°ä¸è¨ã®ããã«review
é¢æ°ãå®ç¾©ããã¨ãã³ãã³ãã©ã¤ã³ããreview
ãå®è¡ã§ããããã«ãªãã¾ãï¼ï¼
> review
No review request
reviewé¢æ°
åãæå±ããçµç¹ã§ã¯ãFindy Team+ãç¨ããéçºãµã¤ã¯ã«ã¿ã¤ã ã®æ¹åæ½çãé²ãã¦ãã¾ãã
ãã®ä¸ã§ã¬ãã¥ã¼ã®åªå
度ãæèçã«ä¸ãããã¨èããã®ã§ããããã©ã¦ã¶ãéãã¦GitHubãéãã¦ã¬ãã¥ã¼ä¾é ¼ããã¦ããPRãè¦ã¤ããæµããç
©ãããã£ãã§ãã
ã¬ãã¥ã¼ä¾é ¼ããã¦ããPRã®ãªã¹ãããµã¯ãã¨éãããããã®ã«ãªãã¼ã¼ã¨æã£ã¦èª¿ã¹ã¦ãã¾ããã
ããã§gh
ã§ããæãã«ã§ããããã§ããã¬ãã¥ã¼ä¾é ¼ããªãæããã©ã¦ã¶éãã®å¾®å¦ããªã¨ããã¨ããã«è¡ãã¤ãã¾ããã
ãããªå¾®å¦ããªã解決ããã®ã«ã¡ãã£ã¨ããé¢æ°ã.zshrc
ã«å®ç¾©ããã®ããããã§ãï¼ï¼
ããã§åã®ã¬ãã¥ã¼ä½é¨ãä¸ãããããã¼ã ã¨ãã¦ã®éçºãµã¤ã¯ã«ã®æ¹åã«ãã¤ãªããã®ã§æé«ã§ããï¼ï¼
è足ãªãã§ãããâã®URLã§ã¬ãã¥ã¼ä¾é ¼ãã¦ãPRã®ä¸è¦§ãéããã¨ã¯ã§ãã¾ãã
https://github.com/:organization/:repository/pulls?q=is%3Apr+is%3Aopen+reviewer%3A%40me
ãã ããã£ã±ãã¿ã¼ããã«ã§ä½æ¥ãã¦ããæã«ãã©ã¦ã¶ã«ç§»åããã®ãç
©ãããã®ã¨ããã©ã¦ã¶ã«ç§»åãã¦ä¾é ¼ããã¦ããªãã¨ãã«å¾®å¦ãªæ°æã¡ã«ãªãã®ãå«ã ã£ããã§ãããã
ä»å¾ãããããã¨
ããã¾ã§ããã¤ããæ°ã«å
¥ããã¤ã³ããç´¹ä»ããã¦ããã ãã¾ããã
ãã£ã¨ç´¹ä»ããããããããæ°ã«å
¥ããã¤ã³ãããã£ã±ãããã¾ãã
ã§ããããã£ã¨ãããªãããï¼ï¼ï¼ï¼ï¼ï¼ã£ã¦ã¨ããããã£ã±ãããã¾ãã
ããã§ã¯ãããªä¼¸ã³ä»£ãæãã¦ããã¾ãã
aliasãabbrã«ãªãã¬ã¤ã¹ããã
aliasã ã¨historyã«çç¥ããå½¢ã§æ®ã£ã¦ãã¾ãã®ã§ãããabbrã使ç¨ããã¨ãå®è¡æã«çç¥å½¢ããå®éã®ã³ãã³ãã«å±éããã¾ãï¼ï¼
ä½æ¥ãã°ãå
±æãããããæã«ä¾¿å©ãªãã§ãããã·ã§ã«ã®ç«ã¡ä¸ãæãå¾®å¦ãªæããªã®ã§è©¦è¡é¯èª¤ä¸ã§ã...
ã«ã¬ã³ããã©ã³ãã¨æ´¾çå ãã©ã³ãéã§å·®åããããã¡ã¤ã«ãåå¾ãã¦ãªã³ãããã¹ãããã
ã³ããããã¦ããªããã¡ã¤ã«ããªã³ãããã¹ã
ã®é
ã§å¤æ´ãã¦ãããã¡ã¤ã«ãã¾ã¨ãã¦ãªã³ããã¦ãããã¨ã話ãããã¦ããã ãã¾ããã
å®ã¯è²ã
妥åãã¦ãã¦ãæ¬æ¥ã¯
- æ´¾çå ãã©ã³ããèªååå¾
- æ´¾çå ãã©ã³ãã¨ã«ã¬ã³ããã©ã³ãã§ã®ãã¡ã¤ã«ã®å·®åãåå¾
- ã¾ã¨ãã¦ãªã³ããã
ãçæ³ã§ããã
ã ã£ããã§ãããæ´¾çå
ãã©ã³ãã®èªååå¾ãé£ããã¦å¦¥åãã¡ããã¾ãã...
ãã¤ãçæ³ã®å½¢ã«æã£ã¦ãããã...
æ´¾çå
ãã©ã³ãããåå¾ã§ããããã¡ã¤ã«ã®ä¸è¦§ã¯git diff --name-only $parent_branch
ã§åå¾ã§ããã¯ãããªã®ã§ããä¸æ©ãªæãã¯ããã¾ãã
å·®åããããã¡ã¤ã«ã®ãã¹ããã¡ã¤ã«ãæ½åºãã¦ãã¹ãããã
åé
ã¨ã³ããããã¦ããªããã¡ã¤ã«ããªã³ãããã¹ã
ã®é
ã«é¢ãããããã®ã§ãããããã¯ã©ã¡ããå¤æ´ããã£ããã¡ã¤ã«ã®ã¿ãæã£ã¦ãã¦ãã¾ãã
ãã ãããã ã¨ãã¹ãããæã«ãå®ã¯ãã¹ããã¡ã¤ã«å¤æ´ãå¿ãã¦ãï¼ï¼ãã«ãã¼ã§ããªãã§ãã
ãªã®ã§ãå¤æ´ããã£ããããã¯ãã³ã¼ãã®ãã¡ã¤ã«ãããã¹ãã³ã¼ããã¡ã¤ã«ãç¹å®ãã¦ããããããã¹ãããããã§ãï¼ï¼
ãã¹ãã³ã¼ããã¡ã¤ã«ã®ç¹å®èªä½ã¯ããã¡ã¤ã«ã®å½åè¦åããã£ãããã¦ããã°sedãªã©ä½¿ã£ã¦ããã«ã§ããã¨ã¯æãã¾ãã
ãã ããã¹ãã³ã¼ãã«ãã§ã«å·®åããã£ããï¼ã¨ããã¿ã¼ã³ãèãã¦å®è£
ã¾ã§è¡ããªãã¨ããã§æ¢ã¾ã£ã¡ãã£ã¦ãã¾ã...
ãããªãã§ããï¼ï¼ï¼ï¼
é¢æ°ããã¡ã¤ã«åå²ããã
.zshrc
ãè¥å¤§åãã¦ãã¦ããã®ã§ãé¢æ°ããã¡ã¤ã«åå²ããããªã¨æã£ã¦ã¾ãã
å
ã»ã©ãåºã¦ãã社å
ChatGPTã«æãã¦ããã£ãã¨ããã.zshrc
ãã¡ã¤ã«å
ã§source function_file.sh
ããã°ããã¿ããã§ãï¼ï¼
ç°¡åããï¼ï¼ã§ããã£ã¬ã¯ããªæ§æã©ãããï¼ï¼ã£ã¦ãªã£ã¦ã¾ãããããªãã°ã£ãã§ããã
ãããã«
ãã®ããã°ã§ã¯æ¥ããããªããåãæ¥åã§ä½¿ç¨ãã¦ãã.zshrc
ãå
¬éãããæ°ã«å
¥ããã¤ã³ããç´¹ä»ããã¦ããã ãã¾ããã
Zshã¯ããã³ãããæ¡å¼µæ©è½ããããã ãã§ãéçºä½é¨ãçå¢ããã®ã§ãããä¸æ©è¸ã¿è¾¼ãã§ã«ã¹ã¿ãã¤ãºãããã¨ã§ãã好ã¿ã®ä½¿ãå¿å°ã«ãªã£ã¦ããã¾ããã
æ¬ããã°ãæå¾ã¾ã§ãèªã¿ããã ããããã¨ããããã¾ããï¼ï¼