web-dev-qa-db-ja.com

Linux:TTYでのコピー/貼り付け

TTY内でコピーして貼り付ける方法を探しています。私はタッチパッドしか持っていないので、gpmと一緒に使うのは面倒です。私が考えることができる唯一の可能性は「画面」を使用することですが、Ctrl-Aを「 `」に再マップした後でも、それでも不便で遅いです。
もっと快適なアプローチはありますか?

7
timn

Screenやgpmが気に入らない場合は、選択肢がかなり限られています。私が考えることができる他のオプションは次のとおりです。

  1. Xで端末を実行します。おそらく、タイル型ウィンドウマネージャーを使用して、最小限のコンソールのような外観にします。

  2. Linuxの代わりに* BSDを実行すると、gpmの代わりにsysmouseを使用できるようになります。私はそれがより良いと聞いており、私の限られたBSDの経験はそれが非常に良いかもしれないことを示唆していますが、クリップボードサポートの分野でそれがより良いかどうかはわかりません。トラックパッドが気に入らないことがほとんどのようですが、交換しないと修正できない可能性があります。

  3. パイプ、名前付きパイプ、スクラッチファイルなどを使用します。たとえば、ほとんどのUNIXエディタでは、通常のコマンドラインスクリプトを使用して選択したテキストを処理できます。たとえば、選択内容を〜/ .clipboardに保存するように設定できます。テキストを入力するコマンド(cat〜/.clipboard)の実行はさらに簡単になるはずです。

  4. 複数のファイルをサポートするエディターを使用し、それらの間でコピー/貼り付けします。 vimはそうします、そしてemacsもそうします、私は確信しています。

6
Lee B

あなたが使用することができます Ctrl+y 貼り付けます。コピーするには、何をコピーするかによって異なります。プロンプトにある場合: Ctrl+u 最初からカットするには、 Ctrl+k 最後までカットします。

4
Natim

tmuxscreenに似ており、コピーして貼り付けることができます。

dvtm マウスでコピー/貼り付けできます。

1
user203154

コピーアンドペーストしようとしているものに応じて... bashにはviモードがあり、emacs(bash default)よりもviの方法でコマンドを編集できます(zshにはvimモードがあります)。 set -o viを〜/ .bashrcenableに入れます。

1
xenoterracide

これを試して:

ls $(xsel -o --display :0)

クリップボードに「wa *」がある場合、任意のTTY端末でこれが生成されます。

$ ls -l  $(xsel -o --display :0)
-rwxr-xr-x 1 root root 1254 Jan 30 11:44 wav_to_mp3.sh
$ 

たぶん、bashエイリアスを介してさらに簡単にすることができます。とにかく私は最終的にこの方法でそれを解決しました:

1)TTY7-GUIでテキストをクリップボードにコピーします2)次にTTY1に切り替えて、次のコマンドを記述します:expandclipboard.sh youtube-dl cb 3)スクリプトはコマンドを展開し、クリップボードの内容をcbの場所に挿入します実行されます。

スクリプトのコードは次のとおりです。

    #!/bin/bash
    var1=$1
    if [ "$var1" = "cb" ]; then
    var1=$(xsel -o --display :0)
    fi

    var2=$2
    if [ "$var2" = "cb" ]; then
    var2=$(xsel -o --display :0)
    fi

    var3=$3
    if [ "$var3" = "cb" ]; then
    var3=$(xsel -o --display :0)
    fi

    var4=$4
    if [ "$var4" = "cb" ]; then
    var4=$(xsel -o --display :0)
    fi

    var5=$5
    if [ "$var5" = "cb" ]; then
    var5=$(xsel -o --display :0)
    fi

    var6=$6
    if [ "$var6" = "cb" ]; then
    var6=$(xsel -o --display :0)
    fi

    var7=$7
    if [ "$var7" = "cb" ]; then
    var7=$(xsel -o --display :0)
    fi

    var8=$8
    if [ "$var8" = "cb" ]; then
    var8=$(xsel -o --display :0)
    fi

    echo $var1 $var2 $var3 $var4 $var5 $var6 $var7 $var8
    $var1 $var2 $var3 $var4 $var5 $var6 $var7 $var8

私はそれが非常に原始的であることを知っていますが、私はこのスクリプトよりも賢いふりをするのが面倒です。 :-)

0
xerostomus