はじめに
最近、変更したり追加した.zshrc
を紹介します。
.zshrc
設定のまとめです。以下より詳細な説明になります。
# help {{{
alias run-help >/dev/null 2>&1 && unalias run-help
autoload -Uz run-help
autoload -Uz run-help-git
autoload -Uz run-help-svn
autoload -Uz run-help-svk
autoload -Uz run-help-openssl
autoload -Uz run-help-p4
autoload -Uz run-help-sudo
bindkey '^h^h' run-help
# help }}}
# z {{{
# brew install z
# ...or,source /path/to/z/z.sh
. `brew --prefix`/etc/profile.d/z.sh
compctl -U -K _z_zsh_tab_completion ${_Z_CMD:-z}
# }}}
# cdr {{{
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
zstyle ':completion:*:*:cdr:*:*' menu selection
zstyle ':completion:*' recent-dirs-insert both
zstyle ':chpwd:*' recent-dirs-max 500
zstyle ':chpwd:*' recent-dirs-default true
zstyle ':chpwd:*' recent-dirs-pushd true
# }}}
# zaw-cdr
# https://github.com/zsh-users/zaw
# source /path/to/zaw.zsh
bindkey '^j^j' zaw-cdr
# mac-clipmenu {{{
# curl -O https://gist.githubusercontent.com/richmikan/3251311/raw/290c70b9a45b5eb66036b83de79bfe6bb0b3b054/parsrx.sh
function searchClipBoard() {
cclip=`plutil -convert xml1 ~/Library/Application\ Support/ClipMenu/clips.data -o - | parsrx.sh | grep '/plist/dict/array/string ' | sed '1,2d' | sed 's/\/plist\/dict\/array\/string//g' | peco`
echo $cclip | pbcopy
}
zle -N searchClipBoard
bindkey '^x^p' searchClipBoard
# mac-clipmenu }}}
# gitinit {{{
function gitinit(){
echo -n username:
read user
repo=`echo $PWD:t`
repo_j={\"name\":\"$repo\"}
url="https://github.com/"$user/$repo.git
curl -u $user https://api.github.com/user/repos -d $repo_j
case $? in
0)
rm -rf .git
git init
echo $url
git remote add origin $url
git commit --allow-empty -m "noun"
git push -u origin master
;;
esac
#case $1 in
# a)
# rm -rf .git
# git init
# git add *
# echo $url
# git remote add origin $url
# git commit -m "first commit"
# git push -u origin master
# ;;
# *)
# rm -rf .git
# git init
# echo $url
# git remote add origin $url
# git commit --allow-empty -m "noun"
# git push -u origin master
# ;;
#esac
}
# gitinit }}}
zaw
zaw-cdr
新しくzshに追加されたcdr
を使った移動をC-j,C-j
キーで実現します。
ちなみに、zaw
は所定の位置でsource
しておいてください。具体的には、自分が本体ファイルをおいているパスを記述します。
# source /path/to/zaw.zsh
# cdr {{{
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
zstyle ':completion:*:*:cdr:*:*' menu selection
zstyle ':completion:*' recent-dirs-insert both
zstyle ':chpwd:*' recent-dirs-max 500
zstyle ':chpwd:*' recent-dirs-default true
zstyle ':chpwd:*' recent-dirs-pushd true
# }}}
# zaw-cdr
# https://github.com/zsh-users/zaw
# source /path/to/zaw.zsh
bindkey '^j^j' zaw-cdr
zaw-z
zaw/source
にプラグインを置き、キーC-f,C-f
を設定しています。これは、z
の履歴を使う方法です。
$ cd /path/to/zaw/source
$ curl -O https://raw.githubusercontent.com/lovingly/dotfiles/master/zsh.d/zaw/zaw-z.zsh
$ echo "bindkey '^f^f' zaw-z" >> ~/.zshrc
ちなみに、z
を設定するには、以下を先に記述しておきます。
# z {{{
# brew install z
# ...or,source /path/to/z/z.sh
. `brew --prefix`/etc/profile.d/z.sh
compctl -U -K _z_zsh_tab_completion ${_Z_CMD:-z}
# }}}
homebrew
で入れた場合とrepoを持ってきた場合では記述が異なります。上は前者ですが、repoを持ってきた場合は、source /path/to/z/z.sh
を記述します。
mac-clipmenu
MacのClipMenuというアプリにて、クリップボード履歴をコマンドラインから参照します。必要な物は、 pecoとかxmlをパースするスクリプトとか。
まずは、スクリプトのダウンロードです。スクリプトはパスの通った場所echo $PATH
に置きます。
$ curl -O https://gist.githubusercontent.com/richmikan/3251311/raw/290c70b9a45b5eb66036b83de79bfe6bb0b3b054/parsrx.sh
$ chmod +x !$:t
# curl -O https://gist.githubusercontent.com/richmikan/3251311/raw/290c70b9a45b5eb66036b83de79bfe6bb0b3b054/parsrx.sh
function searchClipBoard() {
cclip=`plutil -convert xml1 ~/Library/Application\ Support/ClipMenu/clips.data -o - | parsrx.sh | grep '/plist/dict/array/string ' | sed '1,2d' | sed 's/\/plist\/dict\/array\/string//g' | peco`
echo $cclip | pbcopy
}
zle -N searchClipBoard
bindkey '^x^p' searchClipBoard
git-init
ディレクトリ名でGitHubにリポジトリを作成し、空commit
します。
git commit --allow-empty -m "noun"
コメントを外すと、引数a
でディレクトリ内をadd
します。ただし、上記case
文はコメントアウトしてください。
gitinit a
function gitinit(){
echo -n username:
read user
repo=`echo $PWD:t`
repo_j={\"name\":\"$repo\"}
url="https://github.com/"$user/$repo.git
curl -u $user https://api.github.com/user/repos -d $repo_j
case $? in
0)
rm -rf .git
git init
echo $url
git remote add origin $url
git commit --allow-empty -m "noun"
git push -u origin master
;;
esac
#case $1 in
# a)
# rm -rf .git
# git init
# git add *
# echo $url
# git remote add origin $url
# git commit -m "first commit"
# git push -u origin master
# ;;
# *)
# rm -rf .git
# git init
# echo $url
# git remote add origin $url
# git commit --allow-empty -m "noun"
# git push -u origin master
# ;;
#esac
}
help
C-h,C-h
でヘルプを引けるようにしました。
alias run-help >/dev/null 2>&1 && unalias run-help
autoload -Uz run-help
autoload -Uz run-help-git
autoload -Uz run-help-svn
autoload -Uz run-help-svk
autoload -Uz run-help-openssl
autoload -Uz run-help-p4
autoload -Uz run-help-sudo
bindkey '^h^h' run-help
エラーへの対処法
zshでは、記述の順番などがエラーの原因となっている場合が考えられます。したがって、基本的な記述については、その仕組のある程度の理解が必要となります。
zaw-src-cdr:2: closing brace expected
zaw-src-cdr:2: closing brace expected
antigen
を使っている場合、もしくは、setopt sh_word_split
を使っている場合に発生するようです。
ちなみに、デフォルトでは、有効になっていませんので、通常エラーが出ることはありません。エラーが出る場合は、~/.zshrc
の末尾に、以下を記述して対応します。
unsetopt sh_word_split
ちなみに、本件エラーについては、+KenSenoo氏が検証に尽力してくださいました。ありがとうございます。