次のようにless入力して、に表示されている一番上の行をX11 CLIPBOARD選択にコピーできますless。
|.head -n1|xclip -sel c<Enter><Enter>
これは、より少ないバッファーを最上行から.マーク(実際には画面全体のコンテンツ)までhead -n1|xclip -sel cコマンド(その最初の行をCLIPBOARD選択に格納するため)にパイプします。
特定のキーを押したときにその文字列を貼り付けるか、lessキーバインディングのキーまたはキーの組み合わせにバインドするようにターミナルエミュレータを構成できます。たとえば、それをバインドするにはAlt+C:
printf '%s\n' '#commands' '\ec pipe .head -n1|xclip -sel c\n' | lesskey -
ただし、Enterその後に「| done(press RETURN)」プロンプトを確認するために押す必要があります。
を使用するとxterm、現在の画面からコピーする行をCtrl+Alt指示する選択を拡張するときに押し続けると、たとえばここで新しい選択モードを定義することもできlessます。
次のlesspasteようなスクリプトを記述します。
#! /bin/sh -
start=${1%%";"*}
end=${1#*" "}
end=${end%";"*}
head -n "$((end))" | tail -n "$((end - start + 1))" | xclip -sel c
そして、xterm変換テーブルを定義します(ここではテスト用のコマンドラインですが、Xリソースファイルに追加する必要があります)。
xterm -xrm 'XTerm.VT100.translations: #override \
Meta Ctrl<Btn1Down>: select-start()\n\
Meta Ctrl<Btn1Motion>: select-extend()\n\
Meta Ctrl<Btn1Up>: select-end(SECONDARY) \
insert-formatted("|.lesspaste '\''%P %p'\''\n\n", SECONDARY)'
次に、マウスをCtrl+Alt押したままドラッグして貼り付ける線をマークします。ボタン1を離すと、xtermは、現在の画面をlesspaste1つの引数(y1;x1 y2;x2)として渡された開始座標と終了座標でスクリプトにパイプするように指示します。
(もしそれが正しく動作しない可能性があることに注意lessして呼び出される-sことによって呼び出されたときに典型的であるように(空白行を絞るmanに供給され、入力として、)lesspasteであろうない行番号オフセットが間違っているとすることができるように(その空白行を圧迫しています)) 。