NaClの野口です。
まず本記事内のクリップボードとはコピー、ペーストをする際に使用する一時領域のことを指します。
端末エミュレータ上での作業の際、クリップボードへ保存(コピー)する領域の選択にマウスを使用することがありますが、以下のような不満を私は感じています。
上記のことを踏まえてマウスを極力使用せず、コマンドを使用してクリップボードを活用する方法について記載します。
また本記事はマウスに触れる時間を極力減らし、キーボードのみでクリップボードの操作を行うことを目標とします。
動作環境はOSはUbuntu 16.10、シェルはzshを使用しています。
実行環境の詳しい情報を以下に記載します。
macOSにはクリップボードを操作するコマンドが標準で用意されています。
pbcopy
pbpaste
ただしUbuntuには上記のようなコマンドは標準で用意されていません。
そこで本記事ではxselで代用します。
xselはapt-getコマンドを実行することで簡単にインストール出来ます。
xselの基本的な使い方を以下に示します。
注: ##で始まる行についてはコマンドについてのコメントであり、コマンドの出力結果ではありません。
私は上記コマンドを利用しやすいように、~/.zshrc内に以下のようなaliasを定義しています。
注: 次節以降コマンドの利用例を示す際、上記alias(pbcopy、pbpaste)を使用します。
前述しましたがpbcopyは標準入力から入力された内容をクリップボードに保存します。
つまり任意のコマンドの標準出力を、パイプを使用してpbcopyの標準入力にリダイレクトすればいいということです。
上記よりコマンドを使用して意図した内容を標準出力に出力する方法を知っておく必要があることが分かります。
ですが裏を返せば意図した内容を標準出力に出力する方法を身に付ければ、クリップボードを思うがままに操作することが可能になるということです。
前置きが長くなりましたが、本節ではpbcopy、pbpasteの利用例について記載します。
また各コマンド実行後にクリップボードの内容を確認するために、pbpasteを実行しています。
注: ##で始まる行についてはコマンドについてのコメントであり、コマンドの出力結果ではありません。
catを使用します。
行番号を付けたい場合はnlを使用します。
ただしnlはオプション-b aを付けないと空行には行番号をつけないため注意してください。
sedを使用します。
行番号を付けたい場合はnlの標準出力をsedの標準入力へリダイレクトします。
grepを使用します。
-B mオプションによりマッチした行から前m行、-A nオプションによりマッチした行から後n行を表示できます。
行番号はnlを使用する方法の他に、grepに-nオプションを付ける方法があります。
ユーザ名、会社名などがコード内に混ざっている場合、それらの文字列を別の文字列で置換する作業が必要です。
ブラウザ上のサンプルコードをクリップボードにあらかじめコピーしておき、以下のコマンドを実行します。
簡単にですが、pbcopyとpbpasteを使用したクリップボードの活用について記載しました。
本記事で数多くの便利なコマンドの内のほんの僅かしか紹介していません。
興味を持った方は各自で調べていただけると幸いです(私は「逆引きUNIXコマンド - Linuxと過ごす」をよく閲覧します)。
余談ですが、私がワンライナーを書く作業が非常に好きです。その理由は大きく分けて4つあります。
pbcopy、pbpasteを使用することでクリップボードを活用することが出来たcatでファイルを読んでいたところをtacを使用するように変更catをtacに変更し結果をrevにリダイレクトするように変更以上長くなりましたが、これからも楽しみながら技術力を向上していきたいです。
最後まで読んでいただきありがとうございました。