標準入力の結果をシームレスに選択してクリップボードにコピーする「yank」

ターミナルからの標準入力の結果をシームレスに選択してクリップボードにコピーしてくれる yank というコマンドを知りました.

yankは各種環境のパッケージが用意されています.
Debian sid amd64 / Ubuntu 21,04 amd64 / Raspberry Pi OS buster armhf では yank というパッケージで提供されているのでこれを導入します.

$ sudo apt install yank (1)
$ yank (2)
bash: yank: command not found
$ dpkg -L yank | grep bin/ (3)
/usr/bin/yank-cli
  1. yank パッケージを導入
  2. yankコマンドが見つからない
  3. Debian系では名前空間の衝突のためにコマンド名が yank-cli になっている.

とりあえず導入できましたが,Debian環境だと yank コマンドが見つかりません.他のパッケージと名前が競合してしまっているので yank-cli として提供されているようです.

The binary is installed at /usr/bin/yank-cli due to a naming conflict.

— ‘https://github.com/mptre/yank
$ apt-file search /bin/yank
emboss: /usr/bin/yank
yank: /usr/bin/yank-cli

競合しているのはなんds楼と検索してみると emboss というパッケージのようです.

ヨーロッパ分子生物学オープンソフトウェアスイート
EMBOSS は、分子生物学のユーザコミュニティ (例: EMBnet) のために開発された オープンソースな解析用ソフトウェアパッケージです。このソフトウェアを 使うことで、様々なフォーマットで書かれたデータを自動的に処理したり、 ウェブから配列データを透過的に取得したりもできます。また、このパッケージには 拡張ライブラリが含まれているので、真のオープンソース精神に則って ソフトウェアを開発しリリースできるプラットフォームです。 さらに、EMBOSS は様々な配列解析用パッケージやツールとシームレスに 統合されています。EMBOSS は、長く続いた商用パッケージソフトウェアへの流れを 断ち切ったのです。

なかなか熱そうなプロジェクトのようです.

使わないならalias等でyankに向けてもいいかもしれません.

とりあえず導入出来たので試してみます.

yank 01

$ apt-cache search yank | yank-cli
elpa-csv-mode - Emacs major mode for editing comma/char separated values
python3-readlike - GNU Readline-like line editing module
yank - interactively select and yank terminal output to stdout or xsel

apt-cache search の結果を yank で受けてカーソルなどで単語単位で移動してEnterで選択した部分をクリップボードにコピーします.
クリップボード貼付けをするとたしかにコピーされていました.
例えばパッケージ名をコピーして, $ sudo apt install \`xsel\` のようにして使うと便利そうです.

その他便利そうなオプションとして, -d があります.cutコマンドの-dと同じようにデリミタが指定できます.

$ nkf -w mntemsadext00_rct.csv | yank-cli -d,

こんな感じでcsvファイルに , を指定してあげると,各項目がコピーできます.

しかし,yankはページ跨ぎが出来ないようです.1ページ目のものしかコピーできません.こういう場合はyankに渡す前にフィルタしてあげるといいようです.grepや,昨日このblogで紹介したyankと同じ作者の「pick」もこういうときに便利です.

$ nkf -w mntemsadext00_rct.csv | grep 田代 | yank-cli -d,`
$ nkf -w mntemsadext00_rct.csv | pick | yank-cli -d,`

なにかの結果の一部が欲しいときに便利そうです.

環境1
$ dpkg-query -W yank pick
pick	2.0.2-1
yank	1.1.0-2
$ lsb_release -dr
Description:	Raspbian GNU/Linux 10 (buster)
Release:	10
$ uname -m
armv7l
$ cat /proc/device-tree/model ;echo
Raspberry Pi 3 Model B Rev 1.2
環境2
$ dpkg-query -W yank pick
pick	2.0.2-1.1
yank	1.2.0-1
$ lsb_release -dr
Description:	Debian GNU/Linux bullseye/sid
Release:	unstable
$ uname -m
x86_64

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)