Bash vi 모드에 대한 몇 가지 사용자 정의 키 바인딩을 만들었습니다. 삽입 모드에 있을 때 실행되는 반면, 일반 모드에 있을 때 실행되기를 원합니다.
vi 모드를 사용하고 있습니다
set -o vi
Ubuntu 14.04 서버의 터미널 에뮬레이터에서. 지금까지 나는 다시 매핑했습니다:
^ — 줄의 시작 부분으로 이동
$ — 줄 끝으로 이동
다음에:
<space>
a - 줄의 처음으로 이동
<space>
; — 줄 끝으로 이동
Bash 내장 명령 사용제본편집자.bashrc다음과 같이:
bind " -a":beginning-of-line
bind " -;":end-of-line
이러한 키 바인딩은 작동하지만 삽입 모드에 있을 때만 실행됩니다. 어떻게 하면 그냥 발사하게 할 수 있나요?삽입 모드가 아닌 일반 모드일 때만, 반대로?
태그: bash vi 모드, bash vi 모드 키 다시 매핑, vi 모드 일반 모드
답변1
이 작업은 .inputrc에서 수행됩니다.
set editing-mode vi
$if mode=vi
# these are for vi-command mode
set keymap vi-command
# unbind space
" ": ""
# bind space-a, space-;
" a":beginning-of-line
" ;":"$"
$endif