ターミナルバッファでテキスト選択(強調表示)をシミュレートする必要があります。長すぎるため、すべての grep/awk/sed/redirect エントリは関係ありません。また、標準出力フォーマット中に強調表示したくありません。強調表示されていない状態でstdoutに移動し、強調表示する必要があります。アナログ選択。
このシーンですね…
Bashスクリプトは "ls -1"を呼び出し、次をstdoutに出力してからターミナルバッファに出力しますか?
$ ls -1
a.txt
b.txt
c.txt
これで、「b.txt」を見つけてハイライトするためにBashスクリプトに入れることができるコマンドが必要です。
良い:
$ termsearch b.txt
a.txt
[b.txt]
c.txt
"termsearch"が設定されたコマンドの場合、b.txtを白い背景(強調表示)に黒いテキストに変換し、残りのテキストが黒の背景に白に変換するために必要だと思います。問題は、実際にはバッファを編集し、このようにテキストスタイルを変更できないことが問題のようです。
screenをインタラクティブに使用して「b.txt」を見つけることはできますが、強調表示されておらず(主な目標)、screenコマンドをスクリプト化することが可能かどうかわかりません。だから画面をあきらめました。スクリプトコマンドは標準出力をファイルにダンプしますが、ファイルを検索したくありません。ターミナルバッファを検索し、stdoutなしで画面上の結果を強調表示する必要があります。私が望むものはすでに出てきたので、強調しなければならない。
私はncursesが良い方法だと思いますが、私はそれでコーディングしたことがなく複雑に見えます。だから、もっと深く掘り下げる前に、誰かがこれを行う他の方法を見つけることができるかどうか尋ねて、ncursesが私が望むものを実行できるかどうかを確認したかったのです。
答え1
短い:いいえ、できません。
長い:これができない理由は、端末が通常プログラムがテキストをコピーすることを許可しないからです。~から彼らの画面。 GUIアプリケーションに端末画面でテキストを選択させ、そのテキストが何であるかを知るためのバイパス方法があります。はいとどこはい、原則として、端末で希望の色を使用して画面の対応する部分を再描画するコマンドを実行できます。しかし、それは単なる仮説です(誰かが最近これを行うプログラムを書いていない限り)。
ところで、端末は表示された画面でスクロールした後にテキストを変更しません。
答え2
私はそれを使用しますvim
。
あなたの具体的なケースでは
vim .
これにより、vim
ディレクトリ内のすべてのファイルを含むウィンドウが表示されます。で検索し、/
を押してファイルを開くことができますEnter
。
検索の強調表示が有効になっていることを確認してください。
:set hlsearch
他のコマンドでは、次のように十分です。
echo "one\ntwo\nthree" | vim -