この記事では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を使えばコマンド一つでコピーができちゃうのでとても便利だなと感じます。何よりコマンドで色々できることがカッコイイ。