web-dev-qa-db-ja.com

マウスを使わずにターミナルで出力を選択(コピー)する方法

ターミナルに出力を表示する典型的な方法のようですが、特定のフレーズを選択したい場合は、マウスを使用してコピーしますが、マウスを使用せずに選択する方法はありますか?たとえば、lsと入力してファイルのリストを取得し、2番目のファイル(2行目)を選択したいのですが、マウスを使用せずに名前をコピーする方法はありますか?

10
Negrito

Tmuxの使用:

私はtmuxをviモードで使用します:

  1. コピーモードに移動します(私の設定で Prefix+escape、デフォルトのプレフィックスは Ctrl+b
    • 構成ファイル(~/.tmux.conf):bind Escape copy-mode
  2. 移動(矢印を使用)
  3. 希望の出力を選択します(選択を開始して Space
    • 私の設定で vbind-key -T copy-mode-vi y send-keys -X begin-selection
  4. 押す Enter テキストをコピーします。
    • 私の設定で ybind-key -T copy-mode-vi y send-keys -X copy-selection
  5. 押す Prefix+p 貼り付けます。

enter image description here

また、次のようなキーバインディングを作成します。

bind C-c run "tmux save-buffer - | xsel -bi"

を押すことでシステムのクリップボードにバッファを保存できます Prefix+Ctrl+c

私は自分の設定を追加しました。これはデフォルトの設定よりもvimに似ているためです。


コマンドの使用:

これが私がすることです:

  1. コマンドを実行します(例:ls -1
  2. 出力を処理して希望する結果を得る
  3. それをxsel -bi

あなたの例では:

$ ls -1 | sed -n 2p | xsel -bi
  • ls -1出力をそれぞれ1行に出力します
  • sed -n 2p 2行目を取得する
  • xselは、最終結果をクリップボードにコピーするために使用されています。

コマンドの実行に時間がかかりすぎる場合は、まず出力をファイルに保存し、出力を処理します。

command > output
head -10 output | whatever | xsel -bi
10
Ravexina

最も一般的なLinux端末エミュレータは、これを直接行うことはできません。しかし、私が知っているものは2つあります。

かなり長い間存在しているのはシロアリです。ただし、かなり質素です(キーボードショートカットは構成できません。複数のタブはありません)。

今度は、Mantidという名前のこれらの機能を備えた2番目の機能があります(私はここに恥知らずに宣伝しています:)):

https://github.com/omgold/mantid-term

Ubuntuビルドはまだありませんが、1つのArchとRPMがあります。ただし、RPMを作成して、Alienを使用してdebに変換することもできます。

0
omgold