명령이 실행되는 동안 Vi 키 바인딩을 사용하여 Bash에서 삽입 모드를 종료합니다.

명령이 실행되는 동안 Vi 키 바인딩을 사용하여 Bash에서 삽입 모드를 종료합니다.

Vi 키 바인딩을 사용하여 bash를 설정했지만 명령 실행이 끝나면 이동 모드 대신 삽입 모드로 돌아갑니다. bind '"\C-M":vi-movement-mode'my를 사용하여 .bashrcEnter 키를 이동 모드로 매핑할 수 있지만 입력한 명령을 실행할 수는 없습니다.
나는 사용할 수 있다

bind '"jj":vi-movement-mode'
bind '"\C-M":"jj\n"'

Enter 키를 누르면 이동 모드가 종료되지만 명령이 완료되면 삽입 모드로 돌아갑니다.

이는 명령을 입력한 다음 "k"를 사용하여 명령 기록을 뒤로 스크롤하거나 "p"를 사용하여 매번 삽입 모드를 종료하지 않고도 다른 명령을 붙여넣을 수 있다는 의미이므로 유용합니다.

명령을 실행하고 삽입 모드를 종료하도록 단일 키 바인딩을 설정하려면 어떻게 해야 합니까?

아마도 불필요한 정보일 수도 있지만 저는 Windows 터미널을 사용하여 cygwin에서 실행하고 있습니다(고통스럽지만 필요함).

답변1

업데이트: 기술적인 질문과 마찬가지로 질문을 게시한 지 20분 만에 답변을 찾았습니다(그리고 해결책을 찾는 데 오랜 시간을 보냈습니다). \njj대신에 jj\n트릭을 사용하는 것을 발견했습니다 . 특별히 좋지는 않지만 효과가 있는 것 같습니다.

동일한 문제가 있는 다른 사용자를 위해 업데이트된 명령(입력 .bashrc)

bind '"jj":vi-movement-mode'
bind '"\C-M":"\njj"'

관련 정보