📋

クロスプラットフォームで動くクリップボードにコピーするコマンドをzsh/fishに追加する

に公開

zsh

clip.zsh
clip() {
    local input
    if [[ $# -eq 0 ]]; then
        input=$(cat)
    else
        input=$(cat "$1")
    fi

    if [[ -n "$IS_WSL" || -n "$WSL_DISTRO_NAME" ]]; then
        echo -n "$input" | clip.exe
    elif [[ "$(uname)" = "Linux" ]]; then
        echo -n "$input" | xsel -bi
    elif [[ "$(uname)" = "Darwin" ]]; then
        echo -n "$input" | pbcopy
    fi
}

fish

clip.fish
function clip
    if [ -n "$IS_WSL" ] || [ -n "$WSL_DISTRO_NAME" ]
        cat $argv[1] | clip.exe
    else if [ "$(uname)" = "Linux" ]
        cat $argv[1] | xsel -bi
    else if [ "$(uname)" = "Darwin" ]
        cat $argv[1] | pbcopy
    end
end

使用例

clip a.txt

これでa.txtの中身がクリップボードにコピーされます。
もちろん標準入力からの入力も対応していて

clip

で標準入力から受け付けます[1]

参考文献

脚注
  1. catの動作と一緒です。 ↩︎

GitHubで編集を提案

Discussion