久々にターミナル触ったらほとんど忘れてたのでリハビリ
iTerm+zsh入れてたんだけどあんまり使いこなせてないし、 これを機に気になってたoh-my-zshっての入れてみることにした。
さらに調べてる途中で見つけたpercolってのも入れてみた。
環境
- 2017/02/28
- Mac OS X El Capitan 10.11.6
oh-my-zsh
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
インストールはこれだけ。
~/.zshrc
のZSH_THEMEは wedisagree
にした。
path が消えたので ~/.zshrc
に下記を追加した。
export PATH=/bin:/usr/bin:/usr/local/bin:${PATH} eval "$(rbenv init -)"
percol
sudo pip install percol
してみたがエラー。
ぐぐったら easy_install pip
すると直るよと書いてあったので試す。
入った
percolでコマンド履歴検索
percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ
上記の通りなんだけど、~/.zshrc
に下記を追加した
# ctrl+Rで履歴検索 # http://memo.sugyan.com/entry/20140611/1402487717 function percol_select_history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(fc -l -n 1 | eval $tac | percol --query "$LBUFFER") CURSOR=$#BUFFER # move cursor zle -R -c # refresh } zle -N percol_select_history bindkey '^R' percol_select_history
はてなの引用貼り付けしたらフォーマット死んだのでコピペしました。すいません。
ctrl+r
押すだけでコマンド履歴がpercolで表示される。
そのまま単語入れればAND検索で絞り込める。 さらにEnter押せばプロンプトに入力されるのでそのまま再実行できる。
なんて便利なんだ・・・
percolでcd履歴ジャンプ
percol で z / autojump のようにディレクトリ高速ジャンプ - Slip Ahead Logging
またまた上記の通りなんだけど、~/.zshrc
に下記を追加した
# percolで履歴ジャンプ # http://stillpedant.hatenablog.com/entry/percol-cd-history # {{{ # cd 履歴を記録 typeset -U chpwd_functions CD_HISTORY_FILE=${HOME}/.cd_history_file # cd 履歴の記録先ファイル function chpwd_record_history() { echo $PWD >> ${CD_HISTORY_FILE} } chpwd_functions=($chpwd_functions chpwd_record_history) # percol を使って cd 履歴の中からディレクトリを選択 # 過去の訪問回数が多いほど選択候補の上に来る function percol_get_destination_from_history() { sort ${CD_HISTORY_FILE} | uniq -c | sort -r | \ sed -e 's/^[ ]*[0-9]*[ ]*//' | \ sed -e s"/^${HOME//\//\\/}/~/" | \ percol | xargs echo } # percol を使って cd 履歴の中からディレクトリを選択し cd するウィジェット function percol_cd_history() { local destination=$(percol_get_destination_from_history) [ -n $destination ] && cd ${destination/#\~/${HOME}} zle reset-prompt } zle -N percol_cd_history # percol を使って cd 履歴の中からディレクトリを選択し,現在のカーソル位置に挿入するウィジェット function percol_insert_history() { local destination=$(percol_get_destination_from_history) if [ $? -eq 0 ]; then local new_left="${LBUFFER} ${destination} " BUFFER=${new_left}${RBUFFER} CURSOR=${#new_left} fi zle reset-prompt } zle -N percol_insert_history # }}} # C-x ; でディレクトリに cd # C-x i でディレクトリを挿入 bindkey '^x;' percol_cd_history bindkey '^xi' percol_insert_history
こちらもはてなの引用貼り付けしたらフォーマット死んだのでコピペしました。すいません。
引用元の最後の2行はエラーしたので消した。
ctrl + x -> ;
でcd履歴からジャンプ
ctrl + x -> i
で履歴パスをプロンプトに貼り付け
もちろんpercolなので履歴を自由に絞り込める
これも超便利
まとめ
フォルダ移動する際に cd ~/hogehoge
みたいなのを記憶を頼りに打ってたから超楽になった・・・
どっかに 世界変わるわ
って書かれてたけどこれは本当に変わるわ・・・
ありがとうありがとう