Zshからクリップボードの履歴を検索する

Brogramming with Tom
Zshからクリップボードの履歴を検索する方法を紹介します。

photo credit: ryanoshea via photopin cc


前回記事にした内容を誰かが書いてくれたみたいです。ありがたいですね。


クリップボードの履歴から検索して再利用する(mac)


今回は、それをちょっとだけ修正。行頭に数字を入れて、選択しやすいようにしました。


function searchClipBoard() {
    clipMenuPath='$HOME/Library/Application Support/ClipMenu'
plutil -convert xml1 $HOME/Library/Application\ Support/ClipMenu/clips.data -o - |\
        awk '/<string>/,/<\/string>/' |\

        # 15行目から最終行まで抜き出す
        sed -n '15, $p' |\

        sed -e 's/<string>//g' -e 's/<\/string>//g' -e 's/&lt;/</g' -e 's/&gt;/>/g' |\
        # head -5020 |tail -5000 |\
        sed '/^$/d'|cat -n |sort -k 2|uniq -f1 |sort -k 1 |\
        sed -e 's/^ *[0-9]*//g' |\
        awk '{for(i=1;i<NF;i++){printf("%s%s",$i,OFS=" ")}print $NF}' |\

        # ナンバリングの追加
        nl -b t -n ln |percol |sed -e "s/\ /\\\ /g" |\

            # ナンバリングの削除
        sed -e 's/\\ / /g' |cut -c 8- |ruby -pe 'chomp' |pbcopy
    zle reset-prompt
};
zle -N searchClipBoard

# C-x, C-xでクリップボード履歴の検索
bindkey '^x^x' searchClipBoard






ClipMenuの設定



適時使用しやすいように設定しておいてください。