LoginSignup
18
17

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-07-05

シェルスクリプトごりごり書いた(˘ω˘)

percol_clipBoard.jpg

概要(できるようになること)

シェル(zsh)上で alt + cを押すと上のような画面が表示されて今までのクリップボードの履歴が表示される

検索して行を選びEnterを押すとその行が再びクリップボードに入って再利用できる

導入(3ステップ)

①インストール

②ClipMenuの設定のGeneral(日本語環境だったら文言違うかも)で

max clipboard history size10000 に変更 (適宜変更可)
Autosaving clipboard historyEvery minute に変更

③.zshrcに追加

.zshrc
#percolでクリップボード検索
function searchClipBoard() {
    clipMenuPath='$HOME/Library/Application Support/ClipMenu'
        plutil -convert xml1 $HOME/Library/Application\ Support/ClipMenu/clips.data -o - |\
        awk '/<string>/,/<\/string>/'|\
        sed -e 's/<string>//g' -e 's/<\/string>//g' -e 's/&lt;/</g' -e 's/&gt;/>/g' |\
        head -5015 |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}' |\
        percol |sed -e "s/\ /\\\ /g" |\
        sed -e 's/\\ / /g' |ruby -pe 'chomp' |pbcopy
    zle reset-prompt
};
zle -N searchClipBoard
bindkey '^[c' searchClipBoard

これで .zshrcを読み直す($ source .zshrc)

快適ヾ(:3ノシヾ)ノシ

補足

・ショートカットは変更可能
・shellscriptの head -5015 |tail -5000のところで要らない15件を排除して5000件取ってくるようにしてるので、500件だけとりたかったら
head -515 |tail -500 に変える
・他のクリップボード管理系のアプリでも履歴一覧さえ取ってこればできる

18
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17