web-dev-qa-db-ja.com

マウスを使用せずにコマンドラインでファイル名を選択してコピーするにはどうすればよいですか?

通常、[ls]を呼び出した後、ターミナルで発見したファイルに対してアクションを実行したい場合は、マウスを使用して、強調表示し、左クリックして、ファイル名をコピーし、コマンドを入力して、ファイル名を貼り付ける必要があります。再び。

以前にマウスを使用せずにターミナルに表示されていた特定の文字列をコピーする方法はありますか?

ありがとう!

3
J.L.Louis

lsを介して検出されたファイルを処理している場合、通常はタブ補完またはglob処理が最も簡単です。たとえば、report.texを使用したい場合は、vim re<TAB>コピーして貼り付けるよりも。

しかし、コピー・ペーストには確かにその用途があります。私はtmuxでviバインディングを使用してほとんどの作業を行っています。 emacsバインディング(デフォルト)がある場合、アプローチは類似しています(以下、C-は「Ctrlキーを押してからダッシュコントローラーの後のキーを押す」を意味します)、A-は類似していますが、Altとprefixはプレフィックスです。おそらくC-b):

  1. どちらでも、<prefix>[を押してコピーモードに入ります
  2. 矢印キー(常に)またはhjkl(viモードのみ、おそらく?)を使用して、コピーしたいテキストのいずれかの端に移動します。
  3. Emacsモードの場合は、C-<Spaaaaaace>を押して選択を開始します。 viモードの場合は、<Spaaaaaace>を押します。
  4. Emacsモードの場合は、A-wを押して選択したテキストをコピーします。 viモードで<Enter>を押します。
  5. <prefix>]を使用して選択範囲を貼り付けるか、tmux show-bufferコマンドを使用して、コピーしたテキストを標準出力に出力します。これは、コマンドやオートメーションへのパイプに役立ちます。

Tmuxは、他のものをコピーするときに、何をコピーするかを記憶しています。 <prefix>#でコピーされたもののリストをご覧ください。 <prefix>]は最新のものを貼り付けますが、tmux show-buffer-n <number>引数を取り、古いコピーを出力できます。

頭の上からscreenをコピーする方法はわかりませんが、これはほぼ同じようなプロセスです。 Googleにはそれに関する豊富なブログ投稿があると思います。

編集:私は間違いなく一般的にターミナルマルチプレクサを使用することをお勧めします。ターミナルエミュレーターやウィンドウマネージャーに関係なく、3つのキーストロークで別のターミナルを自由に利用できます。筋肉記憶がいい!

1
rperce

Urxvtには、げっ歯類に頼らずにターミナルでテキストを操作できるスクリプトの優れた rxvt-perls コレクションがあります。

コピーして貼り付けるだけでなく、URLを選択してブラウザーで開いたり、クリップボードにヤンクしたり、スクロールバックを検索したり、通常は$ EDITORにいるかのようにテキストを処理したりできます。

1
jasonwryan
Sudo apt-get install xclip

エイリアスを作成します。

 alias pbcopy='xclip -selection clipboard'

このコマンドを使用してコピーします

ls | pbcopy

(あなたも使うことができます

ls <filename> | pbcopy 

特定のファイル名をコピーします。エイリアスがわからない場合: http://www.hostingadvice.com/how-to/set-command-aliases-linuxubuntudebian/

0
Rounak