!!
Bash에서 셸 내에서 대화형으로 명령을 편집할 때 명령줄을 어떻게 확장합니까 ? vi
편집 모드로 작업 중 입니다 .
새로운 명령줄이 입력되면 이전 줄을 가져와서 확장하고 싶습니다.
명령을 실행하기 전에 확장하고 싶습니다.
답변1
emacs 모드에서 사용해 볼 수 있습니다 Alt-^( 와 유사 Ctrl-Alt-e하지만 작동해야 함).오직역사적 확장).
작동하지 않는 경우(예: vi 모드에서 히스토리 확장에 대한 기본 바인딩이 없는 경우) 수동으로 바인딩을 추가할 수 있습니다.
bind '"\e^": history-expand-line'
.bashrc 어딘가에 또는
"\e^": history-expand-line
귀하의 .inputrc에서
고쳐 쓰다.몇 가지 참고사항:
- 모든 것이 괜찮다면 이전 명령으로 시퀀스를 Alt-^바꿀 수 있어야 합니다
!!
. 예를 들어echo "!!"
다음과 같습니다.echo "previous_command with args"
- 예상대로 작동하지 않으면 바인딩을 확인할 수 있습니다
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