일반 모드에서만 vi 모드 키 바인딩을 트리거합니다.

일반 모드에서만 vi 모드 키 바인딩을 트리거합니다.

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

관련 정보