Bash 쉘에서 이전 줄을 현재 줄에 삽입하는 방법은 무엇입니까?

Bash 쉘에서 이전 줄을 현재 줄에 삽입하는 방법은 무엇입니까?

!!Bash에서 셸 내에서 대화형으로 명령을 편집할 때 명령줄을 어떻게 확장합니까 ? vi편집 모드로 작업 중 입니다 .

새로운 명령줄이 입력되면 이전 줄을 가져와서 확장하고 싶습니다.

명령을 실행하기 전에 확장하고 싶습니다.

답변1

emacs 모드에서 사용해 볼 수 있습니다 Alt-^( 와 유사 Ctrl-Alt-e하지만 작동해야 함).오직역사적 확장).

작동하지 않는 경우(예: vi 모드에서 히스토리 확장에 대한 기본 바인딩이 없는 경우) 수동으로 바인딩을 추가할 수 있습니다.

bind '"\e^": history-expand-line'

.bashrc 어딘가에 또는

"\e^": history-expand-line

귀하의 .inputrc에서

고쳐 쓰다.몇 가지 참고사항:

  1. 모든 것이 괜찮다면 이전 명령으로 시퀀스를 Alt-^바꿀 수 있어야 합니다 !!. 예를 들어 echo "!!"다음과 같습니다.echo "previous_command with args"
  2. 예상대로 작동하지 않으면 바인딩을 확인할 수 있습니다 bind -P | grep history-expand(다음과 같은 결과가 반환되어야 함 history-expand-line can be found on "\e^").

답변2

이것은 당신에게 도움이 될 수 있습니다:

echo abc
!! 

이제 Ctrl-Alt-e(또는 emacs 용어로 CMe)를 동시에 입력하십시오.

echo abc

답변3

그러면 M-,emacs 모드에서 이전 줄이 삽입됩니다.

"\e,": "!!\e^"

!!공백 표시기를 바인딩하여 확장할 수도 있습니다 magic-space.

" ": magic-space

관련 정보