"set -o vi"를 설정할 때 Ctrl+L을 활성화하여 화면을 지우는 방법이 있습니까?

"set -o vi"를 설정할 때 Ctrl+L을 활성화하여 화면을 지우는 방법이 있습니까?

Bash 기본 모드에서 Ctrl+를 누르면 L화면이 지워집니다. 하지만 실행 set -o vi하고 Ctrl+를 누르면 L키 입력이 인쇄됩니다( ^L). 이 동작을 유지할 수 있는 방법이 있나요?

답변1

Ctrl+는 L명령 모드에서도 바인딩되지만 vi삽입 모드에서는 바인딩되지 않습니다. clear-screen삽입 모드에는 기본 바인딩이 없습니다. Readline 바인딩은 다음과 같이 지정되어야 합니다 ~/.inputrc:

set editing-mode vi
$if mode=vi

set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen

set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen 
$endif

이것은 일반 모드와 삽입 모드에서 화면을 지우기 위해 Ctrl+를 바인딩합니다 . L물론, 한 가지 모드로만 사용하고 싶다면 해당 옵션을 제거하면 됩니다.

설정하려면 bash다음과 같은 항목을 사용하세요 ~/.bashrc.

set -o vi
bind -m vi-command 'Control-l: clear-screen'
bind -m vi-insert 'Control-l: clear-screen'

하나 있다광범위한 readline 명령 목록이를 사용하여 bash 쉘을 사용자 정의할 수 있습니다.

답변2

다음 줄을 다음 줄에 넣으세요 bashrc.

bind -m vi-insert "\C-l":clear-screen

관련 정보