xselの使い方を解説

この記事ではxselが何なのかとその使い方を説明します。

xselを知ったきっかけ

githubにssh接続する方法をこちらの記事で調べていました。

この記事ではssh接続するために公開鍵を生成し、githubの鍵登録のところに貼り付けするときに、クリップボードにコピーするために、pbcopyというコマンドを使っていました。がしかし、ubuntuにはこのコマンドがありませんでした(Macにはあるらしい)。

pbcopyと同じ働きをするコマンドとしてubuntuにはxselがあることを知ったのがきっかけです。

xselでできること

xselではCLIのコピペとGUIのコピペを連携することが出来ます。

例えばマウスでコピーした内容をコマンドでターミナルに出力したり、逆にコマンドでコピーした内容をマウスでペーストできます。

ubuntuを使っている場合は、sudo apt-get install -y xselでインストール出来ます。

使い方

ここではxselの使い方を説明します。

説明のためにtest.txtを使います。

$ cat test.txt
This is test.

ホイールボタンでのコピー&ペースト方法

コピーの方法

以下のいずれかのコマンドを実行すると、test.txtの内容がコピーされます。この場合ホイールボタンを押したときにコピーされる場所に内容が保持されます。コピーした内容を出力するには、ホイールボタンを押すか次に説明する方法で行えます。

$ cat test.txt | xsel --primary --input
$ cat text.txt | xsel -pi
$ xsel --primary --input < ./test.txt
$ xsel -pi < ./test.txt

ペーストする方法

1,3行目のいずれかの方法で上のコマンドでコピーした内容もしくは、ホールボタンでコピーした内容をペーストできます。

$ xsel --primary --output
This is test.
$ xsel -po
This is test.

クリップボードにコピー&ペースト方法

コピーの方法

以下のいずれかのコマンドを実行すると、test.txtの内容がコピーされます。この場合ctrl+cを押したときにコピーされる場所に内容が保持されます。コピーした内容を出力するにはctrl+vか、次に説明する方法で行えます。

$ cat test.txt | xsel --clipboard --input
$ cat test.txt | xsel -bi
$ xsel --clipboard --input < ./test.txt
$ xsel -bi < ./test.txt

ペーストする方法

以下のいずれかのコマンドで上のコマンドでコピーした内容もしくは、ctrl+cでコピーした内容をペーストできます。

$ xsel --clipboard --output
$ xsel -bo

感想

めちゃくちゃ便利だなと思います。

今まではAtCoderで競技プログラミングを行うときは、vimでソースコードを書いてその内容をマウスでコピーしてAtCoderの提出画面に貼り付けていました

vimの画面をマウスでコピーしようと思うと、行番号が入ってしまうので、わざわざgeditを立ち上げてコピー&ペーストしていました

xselを使えばコマンド一つでコピーができちゃうのでとても便利だなと感じます。何よりコマンドで色々できることがカッコイイ