vimで画面の端末スクロールバックバッファを開く方法はありますか?

vimで画面の端末スクロールバックバッファを開く方法はありますか?

私はラットを永遠に取り除く方法を探しています。一般的なテキスト編集に使用しないという点で非常に快適になりました。しかし、何かが私を悩ませています。シェルを使用して以前の出力の一部をコピーするには、マウスハイライト+コピーを使用する必要があります。本当にひどいです。 「Ctrl-A[」がクールだということはわかりますが、screenScreenに組み込まれているインターフェースではなく、Vimでスクロールバックでナビゲートしたいと思います。

Vimで現在のシェル出力バッファを開いてコピーする方法はありますか?

答え1

画面ウィンドウ内で実行

screen -X hardcopy -h s
vim s
rm s

hardcopy -hロールバックを一時ファイルにダンプし、必要に応じてVimで開くことができます。このスクリプトを作成する場合は、正しい一時ファイル名を使用する必要があります。

#!/bin/sh
scrollback_file=$(mktemp)
screen -X hardcopy -h "$scrollback_file"
vim -c 'call delete(@%)' "$scrollback_file"

(またはEmacsまたはNeovimでシェルを実行することもできます。)

答え2

コマンドを再実行しても問題ない場合は、いつでもこれを実行できます。

<command> | vim -

それでも心配な場合stderr

<command> 2>&1 | vim -

パターンを検索してその場所でvimを開く場合に特に便利です。

grep -iIrHn <pattern> | vim -

その後、パターンラインにカーソルを置きます。gF

関連情報