mac の zsh で、表示されてるコマンドラインを手早くクリップボードにコピーしたい

# 名前はなんでもいい

pbcopy-buffer(){ 
    print -rn $BUFFER | pbcopy
    zle -M "pbcopy: ${BUFFER}" 
}

zle -N pbcopy-buffer
bindkey '^x^p' pbcopy-buffer

↑ を読み込んで、 Ctrl + X Crtl + P を押す。


するとコマンドラインを実行せず、表示したまんまでクリップボードに登録できる

素朴だけど、とりあえず役立ってる。


こういうことやる方法が長らく分からなくて放置してたんだけど、zaw https://github.com/zsh-users/zaw のソースを追いかけてようやくやり方を知りました (zaw最高ですね)

iTermの機能とか screen/tmux とかでもできるのかな。 more better な書き方あったら教えてね

寿司ブロガーが似たようなの書いていた。

http://naoya.g.hatena.ne.jp/naoya/20060507/1146989742

欲しかったのは 直前のヒストリ でなく 今表示されてるコマンドライン なのだ

追記

echo だと\n とか入ってるとだめじゃんか。

さらに追記

print -rn にした