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

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

저는 종종 물건을 컴파일하고 동일한 명령을 계속해서 반복하므로 "시각적 메모리"를 활용하고 일종의 "마지막 명령 반복" 버튼을 터미널에 연결하고 싶습니다. 보다 정확하게는 다음과 같이 봅니다.

  • 내 "특수" 터미널은 하단에 "실행" 버튼이 연결된 추가 입력 라인이 있는 표준 터미널 에뮬레이터와 같습니다. 버튼을 클릭하면 명령이 실행됩니다.없이그것을 지우는 중.
  • 어쩌면 이러한 명령을 임의의 수만큼 쌓을 수도 있습니다(종종 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

또한 완료 항목을 탭하여 확장할 수도 있습니다.

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.

관련 정보