web-dev-qa-db-ja.com

マウスを使用せずにターミナルでテキストを選択する

ターミナルでコマンドを実行するためにEnterキーを押しますが、その前に、マウスを使用せずにコマンドをクリップボードにコピーしたいです。

どうやって?

端末以外の場所にいる場合は、 Ctrl+Home それをします。

ターミナルでそのようなテキストを任意に選択する方法はありますか?

編集済み:

  • screenのような他のプログラムを使用するのは良い選択肢ではないと仮定する
  • テキストは端末の外部に貼り付けられるため、 Ctrl+y そして、同様のシーケンスはそれを解決しません
65
Strapakowsky

次のショートカットをバインドします。

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

今使用した後 Crtl+P 行がクリップボードにコピーされます。次を使用して、ターミナルに貼り付けることができます。

xsel

そして、マウスの中ボタンを使用するXアプリケーションまたは Shift+Insert

16
Nykakin

Emacsキー(bash、cshなど)を理解するシェルの1つを使用している場合、次の方法で現在のコマンドをコピーできます。

  1. control-Aは行の先頭に移動します。

  2. control-Kは、入力した行全体を削除します。

  3. control-Yはテキストをヤンクします。

その後、control-Yテキストをyankして、シェルコマンドラインエディターへの入力としてテキストを挿入できます。

man bashを参照し、表示されたら/emacsに続けてnを入力して(次)、READLINEセクションに進みます。

26
ElderDelp

私が考えることができる最も近いのは Ctrl+u、 Ctrl+y
これにより、カーソルから行頭まで削除され、readlineバッファーから貼り付けられます。ただし、これはクリップボードとまったく同じではありませんが、必要に応じてシェル内に貼り付けることができます。

10
demure

Screenというプログラムがあります。これにより、複数のインスタンスを切り替えることができるテキストウィンドウシステムが作成されます。ただし、テキストを選択することもできます。

Sudo apt-get install screen

そのコマンドはそれをインストールします。

次にscreenと入力します

コマンドシーケンスを開始するには、ctr-aを使用します。次にescを押すと、カーソルが任意の方向に移動します。 Enterキーを押してテキスト選択を開始し、終点に移動してEnterキーをもう一度押します。それはバッファにコピーされます。

次に、ctr-a、次に}を貼り付けます

他のコマンドの詳細はこちら http://www.kuro5hin.org/story/2004/3/9/16838/14935

7
Meer Borg

Vim内にいる場合、1つ以上の行を視覚的に選択できます。 Shift+v そして、バインディングを使用します。 yy、選択を xclip にパイプする。

Vimrcにバインディングを追加します。

vnoremap yy :w !xclip -selection clipboard<CR><CR>

これには xclip をインストールする必要があり、Debian/Ubuntu aptitudeリポジトリにあります。

xclipは、stdinを-selection clipboardオプションとともに保存し、stdinをシステムクリップボードにプッシュします。

したがって、端末からxclipを一般的な方法で使用することもできます。たとえば、ファイル全体をシステムクリップボードにコピーする場合などです。

cat myfile | xclip -selection clipboard

オプションで次のようなエイリアスも作成できる場合:

alias cb="xclip -selection clipboard" 
2
Kris

ダニエル・マイケイのシロアリは「選択モード」を誇っています。 Ctrl + Shift + Spaceを押すとアクティブになります。 vimのようなキーバインディングがあります。 vまたはVはvimのビジュアルモードを選択し、yはヤンクし、Escは選択モードを終了します。

https://stackoverflow.com/questions/1536757/selecting-text-in-terminal-without-using-the-mouse/29386401 からコピー

1
Jakobovski