명령을 입력할 때 vi 모드를 설정하는 방법은 무엇입니까?

명령을 입력할 때 vi 모드를 설정하는 방법은 무엇입니까?

set -o vi명령줄에서 bash를 vi 모드로 전환할 수 있다는 것을 알고 있습니다. 그러나 때로는 vi 모드가 필요할 때도 있고, 일반 모드(emacs 모드?)를 계속 사용하고 싶고, 이미 새 명령을 입력하고 있을 때 vi 모드로 전환할 수 있으면 좋을 것 같습니다.

CLI 명령을 실행하지 않고 vi 모드를 설정하는 방법이 있습니까?

예를 들어 터미널 애플리케이션을 통해 열 수 있습니다. Mac OS X에서 iTerm2를 사용하고 있는데 즉시 모드를 전환하는 명령을 찾을 수 없습니다.

어떤 제안이 있으십니까?

답변1

두 개의 Readline 함수를 바인딩하여 두 입력 모드 사이를 동적으로 전환하도록 키 조합을 제어 vi-insertion-mode할 수 있습니다 .emacs-editing-mode

아래 코드는 먼저 모드에 바인딩된 vi-insertion-mode다음 Ctrl+XCtrl+T( emacs-standard동일한 키 조합이지만) 모드에 emacs-editing-mode바인딩 됩니다 .Ctrl+XCtrl+Tvi-insert

bind -m emacs-standard '"\C-x\C-t": vi-insertion-mode'
bind -m vi-insert      '"\C-x\C-t": emacs-editing-mode'

너무 많은 다른 작업을 방해하지 않고 자신에게 적합한 제어 시퀀스를 사용할 수 있습니다. 여기에 사용된 시퀀스는 기본적으로 바인딩 해제되어 있습니다.

관련 정보