前のコマンドの出力からのテキストを使用する


16

編集2015年4月:これと同じ質問がある場合は、http://xiki.org/も確認することをお勧めします


私はこれが端末の仕組みではないことを知っていますが、以前のコマンド出力から端末ウィンドウの履歴にすでにあるテキストを使用する簡単な方法(コピー、変更など)が欲しいと思うことがよくあります。

私はこのように想像しました:

私はbashシェルでコマンドを入力しようとしていますが、数行上の画面にすでにあるものを入力する必要があることに気付きました。マウスに手を伸ばして選択することはできますが、それは嫌いです。現時点で私が本当に望むのは、端末全体が巨大なVimバッファーになったことです。そのすべてが、プロンプト、入力したコマンド、およびそれらのコマンドからの出力です。すべて。そして、数行上にジャンプし、少し編集して、テキストをヤンクすることができました。次に、bashシェルモードに戻り、ヤンクしたものを現在のコマンドラインに貼り付けます。

私はいくつかのオプションがあることを知っています:

  • 当然、必要なテキストをいくつかのコマンドの出力から直接ファイルにパイプするか、次のコマンドに直接パイプします。ただし、そのためには、事前に計画するか、履歴からコマンドを再実行する必要があります(呼び出し間で出力が変更されないと仮定します)。

  • マウスに手を伸ばして、コピーするテキストを選択するには。ラメ、迷惑な、私はそれをやらなかったらよかったのに(これはGUIスタック交換サイトではありませんか?=)

  • (Mac OS X)ターミナルアプリケーションの[テキストをエクスポート...]オプションを使用して、ターミナルテキストをファイルに保存するには。次に、ファイルを開いて操作します。ほとんど、しかし、なぜディスク上のファイルに保存するステップを経るのですか?

質問は次のとおりです。この状況で何をしますか?このシナリオで役立つトリック、ツール、シェル機能はありますか?マウスを使用するために自分を辞任するか、入力する必要があるものを再入力しますか?

問題は、「Unixの方法」ではないことですが、これは2010年であり、カーソルから数行離れたテキストを簡単にコピーできないことでしょうか?



回答:


4

スクリプトを使用し(-fを使用して毎回確実にフラッシュする)、すべての出力をファイルに含めることができます。

端末マルチプレクサー(画面、tmuxなど)を使用します。たとえば、画面 http://web.mit.edu/gnu/doc/html/screen_11.html#の場合

コマンド:copy copy / scrollbackモードに入ります。これにより、現在のウィンドウとその履歴からテキストを貼り付けバッファにコピーできます。このモードでは、viに似たフルスクリーンエディターがアクティブになり、以下に概要を示すコントロールが表示されます。

他の端末マルチプレクサには、より高度な機能があります。


OK。「ターミナルマルチプレクサ」がおそらく必要なものであることを知りました。ありがとう。また、「スクリプト」コマンドのヒントをありがとう。
セルヒオアコスタ

5

tmux(ターミナルマルチプレクサー)では、Ctrl + A- [を押すとViバッファーモードに切り替わり、画面内を移動したり、バッファーを前後にスクロールしたり、テキストをコピーしたりできます。デフォルトのショートカットは実際にはCtrl + B- [しかし、それは明らかに再構成することを意図していた。また、デフォルトのバッファモードはEmacsですが、Viに設定できます。

tmuxをチェックしてください。これは本当に素晴らしい最新の端末マルチプレクサです。バッファーでの作業に加えて、複数のウィンドウで画面を分割したり、複数の端末から同じセッションに接続したりできます。究極の利便性のために、実際のシェルを教えてログインシェルにすることもできます。

OpenBSDでは、tmuxは基本システムの一部にさえなりました。

詳細については、tmuxのマニュアルページを参照してください。http://tmux.sourceforge.net/のスクリーンショットも参照してください


tmuxは最もクールです!
ガベ。

4

emacsでは、Mxシェルは以前の出力のエディションを処理します。以前のコマンド出力、または通常のバッファーのようなバッファーの任意の部分を簡単にコピーして貼り付けることができます。vimに相当するものがあるはずです。


1
それは私が望むものに非常に近いですが、私はすでにEmacsまたはVimにいる必要があります。+1
セルジオアコスタ

はい、デフォルトのterm + shellである可能性があります。:)それから、最低限、通常のテキストナビゲーションキーを使用します。さらに特別なキーを学んだ場合、Emacsの次の機能にeshellアクセスできます
imz-イヴァンザカリヤシェフ

1

ここで述べたように、Emacs eshellはデフォルトのterm + shellになります。:)それから、最低限、通常のテキストナビゲーションキーを使用します。さらに特別なキーを学んだ場合、Emacsの次の機能にeshellアクセスできます。



1

CLIとしてvimを使用してみてください?数行から出力を選択し、それをパイプでつなぐだけです!


ごめんなさい、あなたについていけません。詳しく説明してもらえますか?
ロアイマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.