次のように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は、現在の画面をlesspaste
1つの引数(y1;x1 y2;x2
)として渡された開始座標と終了座標でスクリプトにパイプするように指示します。
(もしそれが正しく動作しない可能性があることに注意less
して呼び出される-s
ことによって呼び出されたときに典型的であるように(空白行を絞るman
に供給され、入力として、)lesspaste
であろうない行番号オフセットが間違っているとすることができるように(その空白行を圧迫しています)) 。