
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 패키지 정보는 여기에 있습니다: