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

관련 정보