"마지막 반복" 버튼이 있는 터미널 [반복]

"마지막 반복" 버튼이 있는 터미널 [반복]

나는 종종 물건을 컴파일하고 동일한 명령을 계속해서 반복하므로 "시각적 메모리"의 이점을 활용하고 일종의 "이전 명령 반복"버튼을 터미널에 연결하고 싶습니다. 더 정확하게는 이렇게 봅니다.

  • 내 "특수" 터미널은 하단에 추가 입력 라인이 있고 "실행" 버튼이 연결된 표준 터미널 에뮬레이터와 같습니다. 버튼을 클릭하면 명령이 실행됩니다.아니요삭제하세요.
  • 어쩌면 그러한 명령을 얼마든지 쌓을 수도 있습니다(종종 2개 또는 3개의 명령을 번갈아 사용해야 하기 때문입니다).

키보드를 사용하여 마지막 명령을 다시 실행할 수 있다는 것을 알고 있지만 Enter다른 명령을 입력하면(뭔가를 수정하려면) 기록에서 올바른 명령이 표시되지 않는다는 사실을 잊어버리는 경우가 자주 발생합니다. 따라서 Enter 키를 누르기 전에 반사적으로 명령을 읽는 것이 아니라 실제로 명령을 읽어야 합니다(적어도 훑어보아야 합니다).

그런 장치가 어딘가에 있나요? 나는 각 터미널에 항상 "올바른" 명령이 있는지 확인하기 위해 여러 터미널을 정확하게 사용하는 경우가 많지만 Alt+ Tab기술로 인해 종종 잘못된 창으로 이동하게 됩니다. 그리고 환경 및 cwd와 같은 터미널 정보가 필요하므로 이를 코드 편집기에 "통합"하려고만 할 수는 없습니다. 즉, Alt+를 사용 F2하면 Enter작동하지 않습니다(터미널에서도 출력을 읽어야 하기 때문입니다). 나는 키보드와 시각적 기억(클릭을 통해)을 모두 최대한 활용할 수 있기를 원합니다.

답변1

여기서는 역사 확장이 매우 도움이 될 수 있다고 생각합니다. 예를 들어, 입력하면 !p"p"로 시작하는 마지막 명령이 실행됩니다. 마찬가지로 !vi"vi"로 시작하는 마지막 명령이 실행됩니다. 추가 정보여기. 어느 것이 마지막인지 확실하지 않은 경우 쉘 옵션 histverify( shopt -s histverify)을 설정하여 명령을 실행하기 전에 계속 편집(또는 확인)할 수 있습니다. 이것에 대해 더 자세히여기.

또는 기록 검색 기능을 사용할 수도 있습니다. Bash에서 Ctrl+R기록에서 찾으려는 명령을 클릭하고 입력합니다(기준과 일치하는 가장 최근 명령부터 시작). 반복해서 클릭하면 Ctrl+R기준과 일치하는 이전 명령이 다시 표시됩니다. 추가 정보여기그리고여기

원한다면, 위쪽/아래쪽 화살표가 기록 검색을 수행하도록 readline의 inputrc를 수정할 수 있습니다. 추가 정보여기그리고여기.

답변2

셸의 기록 기능을 봅니다. 내 zsh에서:

!!

마지막 명령을 반복하십시오.

history마지막 몇 개의 항목을 보려면 입력하세요 .

셸에서 필요한 버퍼를 얻으려면:

man zshzle

또는

man readline

또는 Tab 키를 사용하여 완성을 확장할 수 있습니다.

make long_target
ls some_path
...
make l<TAB> # prints 'make long_target' without running it

와일드카드, 확장 기능을 사용하세요. 이 기능 외에는 어디에도 사용 사례가 없습니다.

답변3

+ 를 사용하여 zsh이 작업을 수행할 수 있습니다 . 명령을 입력하고 대신 +를 누르세요. 명령이 실행되고 명령이 완료된 후 라인 버퍼에 동일한 내용이 나타납니다.EscAEscAEnter

답변4

아주 간단한 답변이 필요한 것 같습니다. Alt+ 를 언급하셨으므로 Tab(X)windows를 사용하고 있다고 가정합니다. "Enter"를 누르기 전에 마우스로 명령을 강조 표시하십시오. 강조 표시하면 자동으로 클립보드에 복사됩니다. 붙여넣으려면 마우스 가운데 버튼(스크롤 휠)을 누르거나 Shift+ 를 입력하세요 Insert.

관련 정보