mac osのスクリーンショットの形式を変えるコマンドを作る(zshの補完も)

mac osスクリーンショットは、 defaults write com.apple.screencapture type のあとに使う形式をいれることで、作成する形式を変換することができます。

なので下のようなシェルスクリプトをzshrcの中に書いておきます。

screenshot-type () {
    if [ $# -ne 1 ]
    then
        echo "require bmp,gif,jpg,pdf,png,tiff"
        return 1
    else
        defaults write com.apple.screencapture type $1
    fi
}

これは、入力がbmp, gif, jpg, pdf, png, tiffであることを仮定し、入力をスクリーンショットが出力する形式として設定します。

とはいえ、常にjpgやpdfを想定している通り打つのはできないので、補完も書いておきます。

#compdef screenshot-type
function _screenshot-type {
    _values 'type' 'jpg' 'png' 'pdf' 'bmp' 'gif' 'tiff'
}

これを _screenshot-type などの名前で $fpathが通っている場所においておきます。

そうすると、zshscreensho-type と入力してtabを打つと、形式が保管されて便利です