zsh: 直前にうったコマンドをクリップボードに(Mac OS X限定)
シェルで打った直前のコマンドをクリップボードにショートカットでコピーとかできたら作業メモとかとるのにえらいベンリだと思った。.zsh-hitory をうまく使ってとかでも。誰か作ってそう。
naoyaの日記より
このネタで、初めてのzshカスタマイズプログラミングをしてみました。案外簡単にできてしまいました。
クリップボードへのコピーにpbcopyを使っているのですが、これは多分Mac OS Xにしかないと思います。ですので、このカスタマイズはMac OS X限定です。Linuxでも同等の機能を持ったコマンドがあれば、少しの改造で動くようになるはずです。
.zshrcに以下のコードを貼付けておけば、naoyaさんのご要望通り動くはずです。コードはちょっとダサイですが、動きます、、。Ctrl + kでクリップボードに直前にうったコマンドが入ります。キーバインドは好みに応じて変更して下さい。
copy-prev-cmd-to-clipboard () { ZHIST='.zhistory' cat ~/$ZHIST | tail -n 1 | perl -e '$h = <STDIN>; $h =~ m/;(.+)/; print $1;' | pbcopy } zle -N copy-prev-cmd-to-clipboard # ^KはCtrl + v + kで入力する bindkey '^K' copy-prev-cmd-to-clipboard
参考にした資料はこちら。