Mac でも Linux でも一発でクリップボードにコピーする zsh の alias
メールを送るときって当然メーラーを使うんだけど、普通メーラーでは vim が使えない。困った。これでは文章が書けない。
なので、僕はいつもターミナルの vim でメールを書いてからメーラーにコピペしてる。でも、そのコピペがめんどくさい。マウスをぐいーんって動かしたくないし(疲れる)、長文だとターミナルの1画面に収まらなくて選べない。全然スマートじゃない。
というわけで、さくっとクリップボードにコピーする zsh の alias を設定した。
設定例
.zshrc の例は以下。
if which pbcopy >/dev/null 2>&1 ; then # Mac alias -g C='| pbcopy' elif which xsel >/dev/null 2>&1 ; then # Linux alias -g C='| xsel --input --clipboard' elif which putclip >/dev/null 2>&1 ; then # Cygwin alias -g C='| putclip' fi
C をグローバルエイリアスとして設定してる。これで Mac でも Linux でも C だけで標準出力をクリップボードにコピーできるようになる。便利。
使い方
使い方の例は以下。
% vim mail.txt # vim でメールを書く % cat mail.txt C # メールの内容をクリップボードにコピーする
# INPUT.txt のうち 10から15行目をクリップボードにコピーする % sed -n '10,15p' INPUT.txt C
ポイント
ポイントをちょっと説明しておく。
Mac と Linux ではクリップボードにコピーするコマンドが違う
Mac と Linux ではクリップボードにコピーするコマンドが違って、Mac では pbcopy、Linux では xsel になる。というか、その二つのうちインストールしてある方を使う。たぶん Linux 環境では標準で xsel が入ってないのでインストールしておこう。
Windows は知らん。
xclip ではなく xsel を使う
Linux 環境では xclip ってコマンドもある。というか、github に xclip 使えって書いてあって、最初そっちを使ってた。でも、xclip には日本語が文字化けするという致命的な弱点があるので、代わりに xsel を使うようにした。xsel は文字化けせずにちゃんとコピーできる。よしよし。
xsel の --clipboard オプション
xsel で --clipboard(または -b) を指定すると CLIPBOARD selection にコピーする。オプションを省略するか -p または --primary オプションを指定すると PRIMARY selection にコピーする。
CLIPBOARD とか PRIMARY とかって何かよく分かんないけど、CLIPBOARD が Ctrl-V とか右クリックメニューで貼り付けできるやつで、 PRIMARY がマウス真ん中クリックで貼り付けできるやつ、とかそんな感じ。適当に選んでおこう。
参考ページ
xsel がちょっと分かりにくかったので、以下のページを参考にした。