이전 명령 출력의 텍스트 사용

이전 명령 출력의 텍스트 사용

2015년 4월 편집: 동일한 문제가 있으면 확인해 보시기 바랍니다.http://xiki.org/


나는 이것이 터미널이 작동하는 방식이 아니라는 것을 알고 있지만 이전 명령 출력에서 ​​이미 터미널 창 기록에 있는 텍스트로 작업(복사, 수정 등)할 수 있는 쉬운 방법이 있었으면 좋겠다는 생각을 자주 합니다.

나는 다음과 같은 것을 상상했습니다.

저는 bash 쉘에서 명령 입력을 준비하고 있었는데, 이미 화면에 나와 있는 몇 줄을 입력해야 한다는 것을 깨달았습니다. 마우스를 뻗어 선택할 수도 있지만 그게 싫습니다. 지금 내가 정말로 원하는 것은 내 터미널 전체가 하나의 거대한 Vim 버퍼로 바뀌는 것입니다. 즉, 프롬프트, 내가 입력하는 명령, 해당 명령의 출력 등이 모두 포함됩니다. 모든 것. 그런 다음 몇 줄을 건너뛰고 편집하고 텍스트를 가져올 수도 있습니다. 그런 다음 bash 쉘 모드로 돌아가서 현재 명령줄에 가져온 내용을 붙여넣습니다.

몇 가지 옵션이 있다는 것을 알고 있습니다.

  • 물론 한 명령의 출력에서 ​​필요한 텍스트를 파일로 직접 파이프하거나 다음 명령으로 직접 파이프하십시오. 하지만 이렇게 하려면 미리 계획을 세우거나 기록에서 명령을 다시 실행해야 합니다(호출 간에 출력이 변경되지 않는다고 가정).

  • 마우스를 들고 복사하려는 텍스트를 선택하세요. 구질구질하고 짜증나네요. 이런 일을 하지 않았더라면 좋았을 텐데요. (이곳은 GUI 스택 교환 사이트가 아니죠? =)

  • 내(Mac OS X) 터미널 응용 프로그램의 "텍스트 내보내기..." 옵션을 사용하고 터미널 텍스트를 파일에 저장합니다. 그런 다음 파일을 열고 사용하십시오. 거의 그렇지만 디스크에 파일을 저장하는 단계를 수행하는 이유는 무엇입니까?

그래서 질문은 이 상황에서 어떻게 하시겠습니까? 이 상황에서 유용할 수 있는 트릭, 도구, 쉘 기능이 있습니까? 그냥 마우스 사용을 포기하시나요, 아니면 입력해야 할 내용을 다시 입력하시나요?

문제는 내가 "유닉스 방식"으로 일을 하고 있지 않다는 것일 수도 있지만, 지금은 2010년이고 커서에서 몇 줄 떨어진 일부 텍스트를 쉽게 복사할 수 없습니까?

답변1

이맥스에서는MX 쉘이전 출력의 버전을 처리합니다. 일반 버퍼처럼 이전 명령 출력이나 버퍼의 일부를 쉽게 복사하여 붙여넣을 수 있습니다. 나는 vim과 동등한 것이 있어야한다고 확신합니다.

답변2

tmux(터미널 멀티플렉서)에서 Ctrl+A-[를 눌러 Vi 버퍼 모드로 전환할 수 있습니다. 여기서 화면 탐색, 버퍼 앞뒤 스크롤, 텍스트 복사 등을 할 수 있습니다. 기본 단축키는 실제로 Ctrl+B-입니다. 그러나 이는 분명히 재구성이 필요합니다. 또한 기본 버퍼링 모드는 Emacs이지만 Vi로 구성할 수도 있습니다.

tmux를 살펴보세요. 정말 훌륭한 최신 터미널 멀티플렉서입니다. 버퍼를 사용하는 것 외에도 여러 창에 화면을 분할하고 여러 터미널에서 동일한 세션에 연결할 수 있습니다. 궁극적인 편의를 위해 실제 쉘이 무엇인지 알려주면 로그인 쉘로 만들 수도 있습니다.

OpenBSD에서 tmux는 기본 시스템의 일부이기도 합니다.

자세한 내용은 tmux 매뉴얼 페이지를 참조하세요. 스크린샷도 참조하세요http://tmux.sourceforge.net/

답변3

스크립트를 사용하고(매번 플러시되도록 -f 사용) 모든 출력을 파일에 넣을 수 있습니다.

터미널 멀티플렉서(screen, tmux 등)를 사용하세요. 예를 들어 화면의 경우 http://web.mit.edu/gnu/doc/html/screen_11.html#

명령: copy 복사/롤백 모드를 시작합니다. 이를 통해 현재 창과 해당 기록의 텍스트를 붙여넣기 버퍼에 복사할 수 있습니다. 이 모드에서는 vi와 유사한 전체 화면 편집기가 활성화되며 아래에 설명된 컨트롤이 있습니다.

다른 터미널 멀티플렉서에는 확실히 더 고급 기능이 있습니다.

답변4

저는 urxvt(rxvt-unicode)를 사용하고 있으며 urxvt를 설치할 수 있다면 원하는 것일 수 있는 urxvt-keyboard-select라는 패키지가 있습니다. Archlinux 패키지 정보(포인터 포함)는 여기에 있습니다:

https://aur.archlinux.org/packages.php?ID=39950

원본 출처: http://www.github.com/muennich/urxvt-perls

관련 정보