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 패키지 정보(포인터 포함)는 여기에 있습니다: