web-dev-qa-db-ja.com

マウスを使用せずにコマンドラインからクリップボードにテキストをコピーする方法

コマンドラインの現在のテキストを、マウスに触れることなくクリップボードにコピーする方法を見つけようとしています。つまり、キーボードだけでテキストを選択する必要があります。私は完全な解決策につながる可能性のある途中の解決策を見つけました:

Ctrl+a -行頭に移動します。

Ctrl+k -行全体をカットします。

Ctrl+y -カットしたテキストを元に戻します。

あるいは、私も使うことができます Ctrl+u 最初の2つのステップを実行します。

これはもちろん機能しますが、カットテキストがどこに保存されるのかを正確に把握しようとしています。使用せずにそれにアクセスする方法はありますか Ctrl+y ?私はxclipを知っていて、それを使用してテキストをクリップボードに直接パイプすることもできるので、によって保存されたデータをパイプすることを考えていました Ctrl+kxclipに、しかしそれを行う方法がわかりません。

これまでに得た方法は、xdotoolを使用してechoを行の先頭に追加し、| zxcを行の終わりまで入力してEnterキーを押します(zxcは基本的にxclipにパイプするカスタムエイリアスです)。これも機能しますが、実際には「クリーン」なソリューションではありません。

違いがある場合は、Cshellを使用しています。

編集:私はscreenをソリューションとして使用したくないので、言及するのを忘れました。

ありがとう!

10
Sancho Pancho

xtermまたは派生物を使用する場合、キーバインディングを設定してテキスト選択を開始および終了し、X11プライマリ選択またはカットバッファーとして保存できます。 _man xterm_を参照してください。たとえば、_~/.Xdefaults_に追加します。

_XTerm*VT100.Translations: #override\n\
    <Key>KP_1: select-cursor-start() \
            select-cursor-end(PRIMARY, CUT_BUFFER0)\n\
    <Key>KP_2: start-cursor-extend() \
            select-cursor-end(PRIMARY, CUT_BUFFER0)\n
_

_XTerm*VT100.Translations_エントリは1つしか持てません。 _xrdb -merge ~/.Xdefaults_を使用して、X11サーバーを新しいファイルの内容で更新します。新しいxtermを開始します。

ここで、コマンドプロンプトで入力を行ったら、次のように入力します。 1 テンキーのを押すと、マウスのボタン1を押すのと同じように、現在のテキストカーソル位置からテキストの選択が開始されます。矢印キーでカーソルを移動してから、 2 テンキーとその間にあるテキストが強調表示され、1次選択とcutbuffer0にコピーされます。明らかに、他のより適切なキーとアクションを選択できます。同様に、insert-selection(PRIMARY)のようなバインディングを使用して、選択範囲を貼り付けることができます。

7
meuh